callees reserve their own local vars
[bpt/guile.git] / gdbinit
CommitLineData
5e390de6
AW
1# -*- GDB-Script -*-
2
ff1592a1
AW
3define newline
4 call (void)scm_newline (scm_current_error_port ())
5end
6
5e390de6
AW
7define pp
8 call (void)scm_call_1 (scm_variable_ref (scm_c_module_lookup (scm_c_resolve_module ("ice-9 pretty-print"), "pretty-print")), $arg0)
9end
10
ff1592a1
AW
11define gdisplay
12 call (void)scm_display ($arg0, scm_current_error_port ())
13 newline
14end
15
16define gwrite
17 call (void)scm_write ($arg0, scm_current_error_port ())
18 newline
19end
20
21define sputs
22 call (void)scm_puts ($arg0, scm_current_error_port ())
23end
24
25define gslot
26 print ((SCM**)$arg0)[1][$arg1]
27end
28
29define pslot
30 gslot $arg0 $arg1
31 gwrite $
32end
33
34define lforeach
35 set $l=$arg0
36 while $l != 0x404
37 set $x=scm_car($l)
38 $arg1 $x
39 set $l = scm_cdr($l)
40 end
41end
42
43define modsum
44 modname $arg0
45 gslot $arg0 1
46 set $uses=$
47 output "uses:\n"
48 lforeach $uses modname
49end
50
51define moduses
52 pslot $arg0 1
53end
54
55define modname
56 pslot $arg0 5
57end
58
59define modkind
60 pslot $arg0 6
61end
62
63define car
64 call scm_car ($arg0)
65end
66
67define cdr
68 call scm_cdr ($arg0)
69end
70
71define smobwordtox
72 set $x=((SCM*)$arg0)[$arg1]
73end
74
75define smobdatatox
76 smobwordtox $arg0 1
77end
78
53e28ed9 79define program_objcode
ff1592a1 80 smobdatatox $arg0
53e28ed9
AW
81 set $objcode=$x
82 smobdatatox $objcode
83 p *(struct scm_objcode*)$x
ff1592a1
AW
84end
85
86define proglocals
87 set $i=bp->nlocs
88 while $i > 0
89 set $i=$i-1
90 gwrite fp[bp->nargs+$i]
91 end
92end
93
94define progstack
95 set $x=sp
96 while $x > stack_base
97 gwrite *$x
98 set $x=$x-1
99 end
100end
101
102define tc16
103 p ((scm_t_bits)$arg0) & 0xffff
104end
105
106define smobdescriptor
107 p scm_smobs[0xff & (((scm_t_bits)$arg0) >> 8)]
108end
109
887ce75a 110define vmstackinit
ff1592a1
AW
111 set $vmsp=sp
112 set $vmstack_base=stack_base
113 set $vmfp=fp
114 set $vmbp=bp
115 set $vmframe=0
887ce75a
AW
116end
117
118define nextframe
119 set $orig_vmsp=$vmsp
120 while $vmsp > $vmstack_base
121 output $orig_vmsp - $vmsp
ff1592a1 122 sputs "\t"
ff1592a1
AW
123 output $vmsp
124 sputs "\t"
125 gwrite *$vmsp
126 set $vmsp=$vmsp-1
887ce75a
AW
127 end
128 newline
129 sputs "Frame "
130 output $vmframe
131 newline
132 sputs "ra:\t"
133 output $vmsp
134 sputs "\t"
135 output (SCM*)*$vmsp
136 set $vmsp=$vmsp-1
137 newline
138 sputs "mvra:\t"
139 output $vmsp
140 sputs "\t"
141 output (SCM*)*$vmsp
142 set $vmsp=$vmsp-1
143 newline
144 sputs "dl:\t"
145 output $vmsp
146 sputs "\t"
147 set $vmdl=(SCM*)(*$vmsp)
148 output $vmdl
149 newline
150 set $vmsp=$vmsp-1
887ce75a
AW
151 set $vmnlocs=(int)$vmbp->nlocs
152 while $vmnlocs > 0
153 sputs "loc #"
154 output $vmnlocs
155 sputs ":\t"
ff1592a1
AW
156 output $vmsp
157 sputs "\t"
158 gwrite *$vmsp
159 set $vmsp=$vmsp-1
887ce75a
AW
160 set $vmnlocs=$vmnlocs-1
161 end
162 set $vmnargs=(int)$vmbp->nargs
163 while $vmnargs > 0
164 sputs "arg #"
165 output $vmnargs
166 sputs ":\t"
ff1592a1
AW
167 output $vmsp
168 sputs "\t"
169 gwrite *$vmsp
170 set $vmsp=$vmsp-1
887ce75a
AW
171 set $vmnargs=$vmnargs-1
172 end
173 sputs "prog:\t"
174 output $vmsp
175 sputs "\t"
176 gwrite *$vmsp
177 set $vmsp=$vmsp-1
178 newline
b1b942b7
AW
179 if $vmdl
180 set $vmfp=$vmdl
53e28ed9 181 set $vmbp=(struct scm_objcode*)((SCM*)(((SCM*)($vmfp[-1]))[1])[1])
b1b942b7
AW
182 set $vmstack_base=$vmfp+$vmbp->nargs+$vmbp->nlocs+4
183 set $vmframe=$vmframe+1
184 newline
887ce75a 185 end
887ce75a
AW
186end
187
188define vmstack
189 vmstackinit
190 while $vmsp > vp->stack_base
191 nextframe
ff1592a1
AW
192 end
193end
5e390de6
AW
194
195define inst
196 p scm_instruction_table[$arg0]
197end