Mercurial > hg > xemacs-beta
comparison src/gdbinit.union @ 0:376386a54a3c r19-14
Import from CVS: tag r19-14
author | cvs |
---|---|
date | Mon, 13 Aug 2007 08:45:50 +0200 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:376386a54a3c |
---|---|
1 # some useful commands for debugging emacs with gdb 4.* or better | |
2 # used on machines without NO_UNION_TYPE defined (only the Alpha now?) | |
3 | |
4 set print union off | |
5 set print pretty off | |
6 | |
7 define temacs | |
8 run -batch -l loadup.el run-temacs -q | |
9 end | |
10 | |
11 echo \n>>> Use the `temacs' command to run temacs\n\n | |
12 | |
13 # if you use Purify, do this: | |
14 # set env PURIFYOPTIONS -pointer-mask=0x0fffffff | |
15 | |
16 # was frob, but p1 is short for prin1 | |
17 define p1 | |
18 #call = Fprin1 ($tem, Qexternal_debugging_output) | |
19 # compensate for GDB struct-passing bug | |
20 set debug_temp = $ | |
21 call debug_print (&debug_temp) | |
22 printf "\n" | |
23 end | |
24 | |
25 define lbt | |
26 # "&" to compensate for GDB struct-passing bug | |
27 # but I've removed the &'s because it doesn't work with my GDB, | |
28 # and not having them works fine. | |
29 call Fbacktrace (Qexternal_debugging_output, Qt) | |
30 end | |
31 | |
32 | |
33 set $vector_length_mask = ~(1<<31) | |
34 | |
35 define xtype | |
36 # this is really xgctype, as we mask off the mark bit | |
37 output (enum Lisp_Type) ($.gu.type) | |
38 echo \n | |
39 end | |
40 | |
41 define xint | |
42 print ((int)($.s.val << 4))>>4 | |
43 end | |
44 | |
45 define xmarkbit | |
46 print $.gu.markbit | |
47 end | |
48 | |
49 define xrecord | |
50 print (struct lrecord_header *) $.gu.val | |
51 output *($->implementation) | |
52 echo \n | |
53 end | |
54 | |
55 define xbitvec | |
56 print (struct Lisp_Bit_Vector *) ($.gu.val) | |
57 end | |
58 | |
59 define xbuffer | |
60 print (struct buffer *) ($.gu.val) | |
61 end | |
62 | |
63 define xbytecode | |
64 print (struct Lisp_Bytecode *) ($.gu.val) | |
65 end | |
66 | |
67 define xcharset | |
68 print (struct Lisp_Charset *) ($.gu.val) | |
69 end | |
70 | |
71 define xchartab | |
72 print (struct Lisp_Char_Table *) ($.gu.val) | |
73 end | |
74 | |
75 define xchartabentry | |
76 print (struct Lisp_Char_Table_Entry *) ($.gu.val) | |
77 end | |
78 | |
79 define xcodesys | |
80 print (struct Lisp_Coding_System *) ($.gu.val) | |
81 end | |
82 | |
83 define xcolorinst | |
84 print (struct Lisp_Color_Instance *) ($.gu.val) | |
85 end | |
86 | |
87 define xcons | |
88 print (struct Lisp_Cons *) ($.gu.val) | |
89 end | |
90 | |
91 define xcursor | |
92 print (struct Lisp_Cursor *) ($.gu.val) | |
93 end | |
94 | |
95 define xdevice | |
96 print (struct device *) ($.gu.val) | |
97 end | |
98 | |
99 define xevent | |
100 print (struct Lisp_Event *) ($.gu.val) | |
101 end | |
102 | |
103 define xextent | |
104 print (struct extent *) ($.gu.val) | |
105 end | |
106 | |
107 define xextentaux | |
108 print (struct extent_auxiliary *) ($.gu.val) | |
109 end | |
110 | |
111 define xextentinfo | |
112 print (struct extent_info *) ($.gu.val) | |
113 end | |
114 | |
115 define xfloat | |
116 print (struct Lisp_Float *) ($.gu.val) | |
117 output (double) $->data.d | |
118 echo \n | |
119 end | |
120 | |
121 define xfontinst | |
122 print (struct Lisp_Font_Instance *) ($.gu.val) | |
123 end | |
124 | |
125 define xframe | |
126 print (struct frame *) ($.gu.val) | |
127 end | |
128 | |
129 define xglyph | |
130 print (struct Lisp_Glyph *) ($.gu.val) | |
131 end | |
132 | |
133 define xhashtable | |
134 print (struct hashtable_struct *) ($.gu.val) | |
135 end | |
136 | |
137 define ximageinst | |
138 print (struct Lisp_Image_Instance *) ($.gu.val) | |
139 end | |
140 | |
141 define xkeymap | |
142 print (struct keymap *) ($.gu.val) | |
143 end | |
144 | |
145 define xlstream | |
146 print (struct lstream *) ($.gu.val) | |
147 end | |
148 | |
149 define xmarker | |
150 print (struct Lisp_Marker *) ($.gu.val) | |
151 end | |
152 | |
153 define xmenubardata | |
154 print (struct menubar_data *) ($.gu.val) | |
155 end | |
156 | |
157 define xopaque | |
158 print (struct Lisp_Opaque *) ($.gu.val) | |
159 end | |
160 | |
161 define xprocess | |
162 print (struct Lisp_Process *) ($.gu.val) | |
163 end | |
164 | |
165 define xrangetab | |
166 print (struct Lisp_Range_Table *) ($.gu.val) | |
167 end | |
168 | |
169 define xspec | |
170 print (struct Lisp_Specifier *) ($.gu.val) | |
171 end | |
172 | |
173 define xstring | |
174 print (struct Lisp_String *) ($.gu.val) | |
175 output (char *) $->_data | |
176 echo \n | |
177 end | |
178 | |
179 define xsubr | |
180 print (struct Lisp_Subr *) ($.gu.val) | |
181 end | |
182 | |
183 define xsubwindow | |
184 print (struct Lisp_Subwindow *) ($.gu.val) | |
185 end | |
186 | |
187 define xtoolbarbutton | |
188 print (struct toolbar_button *) ($.gu.val) | |
189 end | |
190 | |
191 define xtoolbardata | |
192 print (struct toolbar_data *) ($.gu.val) | |
193 end | |
194 | |
195 define xtooltalkmess | |
196 print (struct Lisp_Tooltalk_Message *) ($.gu.val) | |
197 end | |
198 | |
199 define xtooltalkpatt | |
200 print (struct Lisp_Tooltalk_Pattern *) ($.gu.val) | |
201 end | |
202 | |
203 define xvector | |
204 print (struct Lisp_Vector *) ($.gu.val) | |
205 end | |
206 | |
207 define xwindow | |
208 print (struct window *) ($.gu.val) | |
209 end | |
210 | |
211 define xwindowconfig | |
212 print (struct window_config *) ($.gu.val) | |
213 end | |
214 | |
215 define nilp | |
216 print $ == Qnil | |
217 end | |
218 | |
219 define car | |
220 set $tem = ((struct Lisp_Cons *) $.gu.val)->car | |
221 end | |
222 | |
223 define cdr | |
224 set $tem = ((struct Lisp_Cons *) $.gu.val)->cdr | |
225 end | |
226 | |
227 define string-length | |
228 print ((struct Lisp_String *) $.gu.val)->_size & $vector_length_mask | |
229 end | |
230 | |
231 define string-contents | |
232 print (char *) ((struct Lisp_String *) $.gu.val)->_data | |
233 end | |
234 | |
235 define vector-length | |
236 print ((struct Lisp_Vector *) $.gu.val)->size & $vector_length_mask | |
237 end | |
238 | |
239 define vector-contents | |
240 set $tem = (struct Lisp_Vector *) $.gu.val | |
241 print *($tem->contents) @ ($tem->size & $vector_length_mask) | |
242 set $ = $tem->contents | |
243 end | |
244 | |
245 define symbol-name | |
246 set $tem = ((struct Lisp_Symbol *) $.gu.val)->name | |
247 # output *($tem->_data) @ ($tem->_size & $vector_length_mask) | |
248 output ($tem->_data) | |
249 echo \n | |
250 set $type = Lisp_String | |
251 echo \n | |
252 end | |
253 | |
254 define xsymbol | |
255 symbol-name | |
256 end | |
257 | |
258 define symbol-value | |
259 set $tem = ((struct Lisp_Symbol *) $.gu.val)->value | |
260 end | |
261 | |
262 define symbol-function | |
263 set $tem = ((struct Lisp_Symbol *) $.gu.val)->function | |
264 end | |
265 | |
266 define symbol-plist | |
267 set $tem = ((struct Lisp_Symbol *) $.gu.val)->plist | |
268 end | |
269 | |
270 define wtype | |
271 p $->core.widget_class->core_class.class_name | |
272 end | |
273 | |
274 define xtname | |
275 print XrmQuarkToString(((Object)($))->object.xrm_name) | |
276 end | |
277 | |
278 # | |
279 # GDB, with the losing command-line parser that it has, | |
280 # cannot handle nested blocks. | |
281 # | |
282 define breaks | |
283 | |
284 br Fsignal | |
285 # command | |
286 # bt 3 | |
287 # p sig | |
288 # xsymbol | |
289 # end | |
290 | |
291 br Fkill_emacs | |
292 # command | |
293 # bt 3 | |
294 # end | |
295 | |
296 br assertion_failed | |
297 # command | |
298 # bt 3 | |
299 # end | |
300 | |
301 end |