Mercurial > emacs
annotate src/.gdbinit @ 88218:6860ecbf3db6
*** empty log message ***
author | Alex Schroeder <alex@gnu.org> |
---|---|
date | Wed, 18 Jan 2006 22:33:59 +0000 |
parents | d7ddb3e565de |
children |
rev | line source |
---|---|
88155 | 1 # Copyright (C) 1992, 93, 94, 95, 96, 97, 1998, 2000, 01, 2004, 2005, 2006 |
36219 | 2 # Free Software Foundation, Inc. |
3 # | |
4 # This file is part of GNU Emacs. | |
5 # | |
6 # GNU Emacs is free software; you can redistribute it and/or modify | |
7 # it under the terms of the GNU General Public License as published by | |
8 # the Free Software Foundation; either version 2, or (at your option) | |
9 # any later version. | |
10 # | |
11 # GNU Emacs is distributed in the hope that it will be useful, | |
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
14 # GNU General Public License for more details. | |
15 # | |
16 # You should have received a copy of the GNU General Public License | |
17 # along with GNU Emacs; see the file COPYING. If not, write to the | |
88155 | 18 # Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
19 # Boston, MA 02110-1301, USA. | |
36219 | 20 |
13359
4c60f92bdaa6
Do `set main' to make gdb_valbits etc. available.
Richard M. Stallman <rms@gnu.org>
parents:
12278
diff
changeset
|
21 # Force loading of symbols, enough to give us gdb_valbits etc. |
4c60f92bdaa6
Do `set main' to make gdb_valbits etc. available.
Richard M. Stallman <rms@gnu.org>
parents:
12278
diff
changeset
|
22 set main |
4c60f92bdaa6
Do `set main' to make gdb_valbits etc. available.
Richard M. Stallman <rms@gnu.org>
parents:
12278
diff
changeset
|
23 |
15536 | 24 # Find lwlib source files too. |
25 dir ../lwlib | |
34876
8dbc92d11de2
Comment out the line pointing to the Lesstif source
Gerd Moellmann <gerd@gnu.org>
parents:
32812
diff
changeset
|
26 #dir /gd/gnu/lesstif-0.89.9/lib/Xm |
15536 | 27 |
20672 | 28 # Don't enter GDB when user types C-g to quit. |
29 # This has one unfortunate effect: you can't type C-c | |
30 # at the GDB to stop Emacs, when using X. | |
31 # However, C-z works just as well in that case. | |
32 handle 2 noprint pass | |
33 | |
88155 | 34 # Make it work like SIGINT normally does. |
35 handle SIGTSTP nopass | |
36 | |
30636 | 37 # Don't pass SIGALRM to Emacs. This makes problems when |
38 # debugging. | |
39 handle SIGALRM ignore | |
40 | |
88155 | 41 # $valmask and $tagmask are mask values set up by the xreload macro below. |
42 | |
43 # Use $bugfix so that the value isn't a constant. | |
44 # Using a constant runs into GDB bugs sometimes. | |
45 define xgetptr | |
46 set $bugfix = $arg0 | |
47 set $ptr = (gdb_use_union ? $bugfix.u.val : $bugfix & $valmask) | gdb_data_seg_bits | |
48 end | |
49 | |
50 define xgetint | |
51 set $bugfix = $arg0 | |
52 set $int = gdb_use_union ? $bugfix.s.val : (gdb_use_lsb ? $bugfix : $bugfix << gdb_gctypebits) >> gdb_gctypebits | |
53 end | |
54 | |
55 define xgettype | |
56 set $bugfix = $arg0 | |
57 set $type = gdb_use_union ? $bugfix.s.type : (enum Lisp_Type) (gdb_use_lsb ? $bugfix & $tagmask : $bugfix >> gdb_valbits) | |
58 end | |
11872
a28bd38b2ff3
gdb_lisp_params to get storage layout info.
Karl Heuer <kwzh@gnu.org>
parents:
11006
diff
changeset
|
59 |
567 | 60 # Set up something to print out s-expressions. |
61 define pr | |
88155 | 62 set debug_print ($) |
567 | 63 end |
64 document pr | |
65 Print the emacs s-expression which is $. | |
66 Works only when an inferior emacs is executing. | |
67 end | |
68 | |
88155 | 69 # Print out s-expressions |
70 define pp | |
71 set $tmp = $arg0 | |
72 set safe_debug_print ($tmp) | |
73 end | |
74 document pp | |
75 Print the argument as an emacs s-expression | |
76 Works only when an inferior emacs is executing. | |
77 end | |
78 | |
79 # Print out s-expressions from tool bar | |
80 define pp1 | |
81 set $tmp = $arg0 | |
82 echo $arg0 | |
83 printf " = " | |
84 set safe_debug_print ($tmp) | |
85 end | |
86 document pp1 | |
87 Print the argument as an emacs s-expression | |
88 Works only when an inferior emacs is executing. | |
89 For use on tool bar when debugging in Emacs | |
90 where the variable name would not otherwise | |
91 be recorded in the GUD buffer. | |
92 end | |
93 | |
94 # Print value of lisp variable | |
95 define pv | |
96 set $tmp = "$arg0" | |
97 set safe_debug_print ( find_symbol_value (intern ($tmp))) | |
98 end | |
99 document pv | |
100 Print the value of the lisp variable given as argument. | |
101 Works only when an inferior emacs is executing. | |
102 end | |
103 | |
104 # Print value of lisp variable | |
105 define pv1 | |
106 set $tmp = "$arg0" | |
107 echo $arg0 | |
108 printf " = " | |
109 set safe_debug_print (find_symbol_value (intern ($tmp))) | |
110 end | |
111 document pv1 | |
112 Print the value of the lisp variable given as argument. | |
113 Works only when an inferior emacs is executing. | |
114 For use on tool bar when debugging in Emacs | |
115 where the variable name would not otherwise | |
116 be recorded in the GUD buffer. | |
117 end | |
118 | |
119 # Print out current buffer point and boundaries | |
120 define ppt | |
121 set $b = current_buffer | |
122 set $t = $b->text | |
123 printf "BUF PT: %d", $b->pt | |
124 if ($b->pt != $b->pt_byte) | |
125 printf "[%d]", $b->pt_byte | |
126 end | |
127 printf " of 1..%d", $t->z | |
128 if ($t->z != $t->z_byte) | |
129 printf "[%d]", $t->z_byte | |
130 end | |
131 if ($b->begv != 1 || $b->zv != $t->z) | |
132 printf " NARROW=%d..%d", $b->begv, $b->zv | |
133 if ($b->begv != $b->begv_byte || $b->zv != $b->zv_byte) | |
134 printf " [%d..%d]", $b->begv_byte, $b->zv_byte | |
135 end | |
136 end | |
137 printf " GAP: %d", $t->gpt | |
138 if ($t->gpt != $t->gpt_byte) | |
139 printf "[%d]", $t->gpt_byte | |
140 end | |
141 printf " SZ=%d\n", $t->gap_size | |
142 end | |
143 document ppt | |
144 Print point, beg, end, narrow, and gap for current buffer. | |
145 end | |
146 | |
147 # Print out iterator given as first arg | |
148 define pitx | |
149 set $it = $arg0 | |
150 printf "cur=%d", $it->current.pos.charpos | |
151 if ($it->current.pos.charpos != $it->current.pos.bytepos) | |
152 printf "[%d]", $it->current.pos.bytepos | |
153 end | |
154 printf " start=%d", $it->start.pos.charpos | |
155 if ($it->start.pos.charpos != $it->start.pos.bytepos) | |
156 printf "[%d]", $it->start.pos.bytepos | |
157 end | |
158 printf " end=%d", $it->end_charpos | |
159 printf " stop=%d", $it->stop_charpos | |
160 printf " face=%d", $it->face_id | |
161 if ($it->multibyte_p) | |
162 printf " MB" | |
163 end | |
164 if ($it->header_line_p) | |
165 printf " HL" | |
166 end | |
167 if ($it->n_overlay_strings > 0) | |
168 printf " nov=%d", $it->n_overlay_strings | |
169 end | |
170 if ($it->sp != 0) | |
171 printf " sp=%d", $it->sp | |
172 end | |
173 if ($it->what == IT_CHARACTER) | |
174 if ($it->len == 1 && $it->c >= ' ' && it->c < 255) | |
175 printf " ch='%c'", $it->c | |
176 else | |
177 printf " ch=[%d,%d]", $it->c, $it->len | |
178 end | |
179 else | |
180 if ($it->what == IT_IMAGE) | |
181 printf " IMAGE=%d", $it->image_id | |
182 else | |
183 printf " " | |
184 output $it->what | |
185 end | |
186 end | |
187 if ($it->method != GET_FROM_BUFFER) | |
188 printf " next=" | |
189 output $it->method | |
190 if ($it->method == GET_FROM_STRING) | |
191 printf "[%d]", $it->current.string_pos.charpos | |
192 end | |
193 end | |
194 printf "\n" | |
195 if ($it->region_beg_charpos >= 0) | |
196 printf "reg=%d-%d ", $it->region_beg_charpos, $it->region_end_charpos | |
197 end | |
198 printf "vpos=%d hpos=%d", $it->vpos, $it->hpos, | |
199 printf " y=%d lvy=%d", $it->current_y, $it->last_visible_y | |
200 printf " x=%d vx=%d-%d", $it->current_x, $it->first_visible_x, $it->last_visible_x | |
201 printf " a+d=%d+%d=%d", $it->ascent, $it->descent, $it->ascent+$it->descent | |
202 printf " max=%d+%d=%d", $it->max_ascent, $it->max_descent, $it->max_ascent+$it->max_descent | |
203 printf "\n" | |
204 end | |
205 document pitx | |
206 Pretty print a display iterator. | |
207 Take one arg, an iterator object or pointer. | |
208 end | |
209 | |
210 define pit | |
211 pitx it | |
212 end | |
213 document pit | |
214 Pretty print the display iterator it. | |
215 end | |
216 | |
217 define prowx | |
218 set $row = $arg0 | |
219 printf "y=%d x=%d pwid=%d", $row->y, $row->x, $row->pixel_width | |
220 printf " a+d=%d+%d=%d", $row->ascent, $row->height-$row->ascent, $row->height | |
221 printf " phys=%d+%d=%d", $row->phys_ascent, $row->phys_height-$row->phys_ascent, $row->phys_height | |
222 printf " vis=%d", $row->visible_height | |
223 printf " L=%d T=%d R=%d", $row->used[0], $row->used[1], $row->used[2] | |
224 printf "\n" | |
225 printf "start=%d end=%d", $row->start.pos.charpos, $row->end.pos.charpos | |
226 if ($row->enabled_p) | |
227 printf " ENA" | |
228 end | |
229 if ($row->displays_text_p) | |
230 printf " DISP" | |
231 end | |
232 if ($row->mode_line_p) | |
233 printf " MODEL" | |
234 end | |
235 if ($row->continued_p) | |
236 printf " CONT" | |
237 end | |
238 if ($row-> truncated_on_left_p) | |
239 printf " TRUNC:L" | |
240 end | |
241 if ($row-> truncated_on_right_p) | |
242 printf " TRUNC:R" | |
243 end | |
244 if ($row->starts_in_middle_of_char_p) | |
245 printf " STARTMID" | |
246 end | |
247 if ($row->ends_in_middle_of_char_p) | |
248 printf " ENDMID" | |
249 end | |
250 if ($row->ends_in_newline_from_string_p) | |
251 printf " ENDNLFS" | |
252 end | |
253 if ($row->ends_at_zv_p) | |
254 printf " ENDZV" | |
255 end | |
256 if ($row->overlapped_p) | |
257 printf " OLAPD" | |
258 end | |
259 if ($row->overlapping_p) | |
260 printf " OLAPNG" | |
261 end | |
262 printf "\n" | |
263 end | |
264 document prowx | |
265 Pretty print information about glyph_row. | |
266 Takes one argument, a row object or pointer. | |
267 end | |
268 | |
269 define prow | |
270 prowx row | |
271 end | |
272 document prow | |
273 Pretty print information about glyph_row in row. | |
274 end | |
275 | |
276 | |
277 define pcursorx | |
278 set $cp = $arg0 | |
279 printf "y=%d x=%d vpos=%d hpos=%d", $cp->y, $cp->x, $cp->vpos, $cp->hpos | |
280 end | |
281 document pcursorx | |
282 Pretty print a window cursor | |
283 end | |
284 | |
285 define pcursor | |
286 printf "output: " | |
287 pcursorx output_cursor | |
288 printf "\n" | |
289 end | |
290 document pcursor | |
291 Pretty print the output_cursor | |
292 end | |
293 | |
294 define pwinx | |
295 set $w = $arg0 | |
296 xgetint $w->sequence_number | |
297 if ($w->mini_p != Qnil) | |
298 printf "Mini " | |
299 end | |
300 printf "Window %d ", $int | |
301 xgetptr $w->buffer | |
302 set $tem = (struct buffer *) $ptr | |
303 xgetptr $tem->name | |
304 printf "%s", ((struct Lisp_String *) $ptr)->data | |
305 printf "\n" | |
306 xgetptr $w->start | |
307 set $tem = (struct Lisp_Marker *) $ptr | |
308 printf "start=%d end:", $tem->charpos | |
309 if ($w->window_end_valid != Qnil) | |
310 xgetint $w->window_end_pos | |
311 printf "pos=%d", $int | |
312 xgetint $w->window_end_vpos | |
313 printf " vpos=%d", $int | |
314 else | |
315 printf "invalid" | |
316 end | |
317 printf " vscroll=%d", $w->vscroll | |
318 if ($w->force_start != Qnil) | |
319 printf " FORCE_START" | |
320 end | |
321 if ($w->must_be_updated_p) | |
322 printf " MUST_UPD" | |
323 end | |
324 printf "\n" | |
325 printf "cursor: " | |
326 pcursorx $w->cursor | |
327 printf " phys: " | |
328 pcursorx $w->phys_cursor | |
329 if ($w->phys_cursor_on_p) | |
330 printf " ON" | |
331 else | |
332 printf " OFF" | |
333 end | |
334 printf " blk=" | |
335 if ($w->last_cursor_off_p != $w->cursor_off_p) | |
336 if ($w->last_cursor_off_p) | |
337 printf "ON->" | |
338 else | |
339 printf "OFF->" | |
340 end | |
341 end | |
342 if ($w->cursor_off_p) | |
343 printf "ON" | |
344 else | |
345 printf "OFF" | |
346 end | |
347 printf "\n" | |
348 end | |
349 document pwinx | |
350 Pretty print a window structure. | |
351 Takes one argument, a pointer to a window structure | |
352 end | |
353 | |
354 define pwin | |
355 pwinx w | |
356 end | |
357 document pwin | |
358 Pretty print window structure w. | |
359 end | |
360 | |
361 | |
567 | 362 define xtype |
88155 | 363 xgettype $ |
364 output $type | |
365 echo \n | |
366 if $type == Lisp_Misc | |
367 xmisctype | |
368 else | |
369 if $type == Lisp_Vectorlike | |
370 xvectype | |
371 end | |
372 end | |
567 | 373 end |
638 | 374 document xtype |
7962 | 375 Print the type of $, assuming it is an Emacs Lisp value. |
10299
0de933eb95a2
Adapt to new Lisp_Object format.
Richard M. Stallman <rms@gnu.org>
parents:
8310
diff
changeset
|
376 If the first type printed is Lisp_Vector or Lisp_Misc, |
88155 | 377 a second line gives the more precise type. |
10299
0de933eb95a2
Adapt to new Lisp_Object format.
Richard M. Stallman <rms@gnu.org>
parents:
8310
diff
changeset
|
378 end |
0de933eb95a2
Adapt to new Lisp_Object format.
Richard M. Stallman <rms@gnu.org>
parents:
8310
diff
changeset
|
379 |
0de933eb95a2
Adapt to new Lisp_Object format.
Richard M. Stallman <rms@gnu.org>
parents:
8310
diff
changeset
|
380 define xvectype |
88155 | 381 xgetptr $ |
382 set $size = ((struct Lisp_Vector *) $ptr)->size | |
383 output ($size & PVEC_FLAG) ? (enum pvec_type) ($size & PVEC_TYPE_MASK) : $size & ~gdb_array_mark_flag | |
384 echo \n | |
10299
0de933eb95a2
Adapt to new Lisp_Object format.
Richard M. Stallman <rms@gnu.org>
parents:
8310
diff
changeset
|
385 end |
0de933eb95a2
Adapt to new Lisp_Object format.
Richard M. Stallman <rms@gnu.org>
parents:
8310
diff
changeset
|
386 document xvectype |
88155 | 387 Print the size or vector subtype of $, assuming it is a vector or pseudovector. |
10299
0de933eb95a2
Adapt to new Lisp_Object format.
Richard M. Stallman <rms@gnu.org>
parents:
8310
diff
changeset
|
388 end |
0de933eb95a2
Adapt to new Lisp_Object format.
Richard M. Stallman <rms@gnu.org>
parents:
8310
diff
changeset
|
389 |
0de933eb95a2
Adapt to new Lisp_Object format.
Richard M. Stallman <rms@gnu.org>
parents:
8310
diff
changeset
|
390 define xmisctype |
88155 | 391 xgetptr $ |
392 output (enum Lisp_Misc_Type) (((struct Lisp_Free *) $ptr)->type) | |
393 echo \n | |
10299
0de933eb95a2
Adapt to new Lisp_Object format.
Richard M. Stallman <rms@gnu.org>
parents:
8310
diff
changeset
|
394 end |
0de933eb95a2
Adapt to new Lisp_Object format.
Richard M. Stallman <rms@gnu.org>
parents:
8310
diff
changeset
|
395 document xmisctype |
0de933eb95a2
Adapt to new Lisp_Object format.
Richard M. Stallman <rms@gnu.org>
parents:
8310
diff
changeset
|
396 Print the specific type of $, assuming it is some misc type. |
638 | 397 end |
567 | 398 |
399 define xint | |
88155 | 400 xgetint $ |
401 print $int | |
567 | 402 end |
638 | 403 document xint |
7962 | 404 Print $, assuming it is an Emacs Lisp integer. This gets the sign right. |
638 | 405 end |
567 | 406 |
407 define xptr | |
88155 | 408 xgetptr $ |
409 print (void *) $ptr | |
567 | 410 end |
638 | 411 document xptr |
7962 | 412 Print the pointer portion of $, assuming it is an Emacs Lisp value. |
638 | 413 end |
567 | 414 |
415 define xmarker | |
88155 | 416 xgetptr $ |
417 print (struct Lisp_Marker *) $ptr | |
567 | 418 end |
638 | 419 document xmarker |
7962 | 420 Print $ as a marker pointer, assuming it is an Emacs Lisp marker value. |
638 | 421 end |
567 | 422 |
10483
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
423 define xoverlay |
88155 | 424 xgetptr $ |
425 print (struct Lisp_Overlay *) $ptr | |
10483
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
426 end |
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
427 document xoverlay |
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
428 Print $ as a overlay pointer, assuming it is an Emacs Lisp overlay value. |
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
429 end |
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
430 |
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
431 define xmiscfree |
88155 | 432 xgetptr $ |
433 print (struct Lisp_Free *) $ptr | |
10483
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
434 end |
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
435 document xmiscfree |
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
436 Print $ as a misc free-cell pointer, assuming it is an Emacs Lisp Misc value. |
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
437 end |
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
438 |
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
439 define xintfwd |
88155 | 440 xgetptr $ |
441 print (struct Lisp_Intfwd *) $ptr | |
10483
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
442 end |
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
443 document xintfwd |
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
444 Print $ as an integer forwarding pointer, assuming it is an Emacs Lisp Misc value. |
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
445 end |
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
446 |
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
447 define xboolfwd |
88155 | 448 xgetptr $ |
449 print (struct Lisp_Boolfwd *) $ptr | |
10483
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
450 end |
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
451 document xboolfwd |
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
452 Print $ as a boolean forwarding pointer, assuming it is an Emacs Lisp Misc value. |
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
453 end |
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
454 |
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
455 define xobjfwd |
88155 | 456 xgetptr $ |
457 print (struct Lisp_Objfwd *) $ptr | |
10483
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
458 end |
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
459 document xobjfwd |
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
460 Print $ as an object forwarding pointer, assuming it is an Emacs Lisp Misc value. |
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
461 end |
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
462 |
10495
70bd087c47a9
(xbufobjfwd, xbuflocal, xwinconfig):
Karl Heuer <kwzh@gnu.org>
parents:
10483
diff
changeset
|
463 define xbufobjfwd |
88155 | 464 xgetptr $ |
465 print (struct Lisp_Buffer_Objfwd *) $ptr | |
10483
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
466 end |
10495
70bd087c47a9
(xbufobjfwd, xbuflocal, xwinconfig):
Karl Heuer <kwzh@gnu.org>
parents:
10483
diff
changeset
|
467 document xbufobjfwd |
10483
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
468 Print $ as a buffer-local object forwarding pointer, assuming it is an Emacs Lisp Misc value. |
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
469 end |
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
470 |
11006
2aa4135eee50
(xkbobjfwd): Renamed from xdispobjfwd.
Karl Heuer <kwzh@gnu.org>
parents:
10582
diff
changeset
|
471 define xkbobjfwd |
88155 | 472 xgetptr $ |
473 print (struct Lisp_Kboard_Objfwd *) $ptr | |
10582 | 474 end |
11006
2aa4135eee50
(xkbobjfwd): Renamed from xdispobjfwd.
Karl Heuer <kwzh@gnu.org>
parents:
10582
diff
changeset
|
475 document xkbobjfwd |
2aa4135eee50
(xkbobjfwd): Renamed from xdispobjfwd.
Karl Heuer <kwzh@gnu.org>
parents:
10582
diff
changeset
|
476 Print $ as a kboard-local object forwarding pointer, assuming it is an Emacs Lisp Misc value. |
10582 | 477 end |
478 | |
10495
70bd087c47a9
(xbufobjfwd, xbuflocal, xwinconfig):
Karl Heuer <kwzh@gnu.org>
parents:
10483
diff
changeset
|
479 define xbuflocal |
88155 | 480 xgetptr $ |
481 print (struct Lisp_Buffer_Local_Value *) $ptr | |
10483
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
482 end |
10495
70bd087c47a9
(xbufobjfwd, xbuflocal, xwinconfig):
Karl Heuer <kwzh@gnu.org>
parents:
10483
diff
changeset
|
483 document xbuflocal |
10483
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
484 Print $ as a buffer-local-value pointer, assuming it is an Emacs Lisp Misc value. |
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
485 end |
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
486 |
567 | 487 define xsymbol |
88155 | 488 set $sym = $ |
489 xgetptr $sym | |
490 print (struct Lisp_Symbol *) $ptr | |
491 xprintsym $sym | |
492 echo \n | |
567 | 493 end |
638 | 494 document xsymbol |
495 Print the name and address of the symbol $. | |
7962 | 496 This command assumes that $ is an Emacs Lisp symbol value. |
638 | 497 end |
567 | 498 |
499 define xstring | |
88155 | 500 xgetptr $ |
501 print (struct Lisp_String *) $ptr | |
502 xprintstr $ | |
503 echo \n | |
567 | 504 end |
505 document xstring | |
638 | 506 Print the contents and address of the string $. |
7962 | 507 This command assumes that $ is an Emacs Lisp string value. |
567 | 508 end |
509 | |
510 define xvector | |
88155 | 511 xgetptr $ |
512 print (struct Lisp_Vector *) $ptr | |
513 output ($->size > 50) ? 0 : ($->contents[0])@($->size & ~gdb_array_mark_flag) | |
999 | 514 echo \n |
567 | 515 end |
516 document xvector | |
638 | 517 Print the contents and address of the vector $. |
7962 | 518 This command assumes that $ is an Emacs Lisp vector value. |
567 | 519 end |
520 | |
22012
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
521 define xprocess |
88155 | 522 xgetptr $ |
523 print (struct Lisp_Process *) $ptr | |
524 output *$ | |
525 echo \n | |
22012
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
526 end |
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
527 document xprocess |
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
528 Print the address of the struct Lisp_process which the Lisp_Object $ points to. |
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
529 end |
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
530 |
1113 | 531 define xframe |
88155 | 532 xgetptr $ |
533 print (struct frame *) $ptr | |
567 | 534 end |
1113 | 535 document xframe |
7962 | 536 Print $ as a frame pointer, assuming it is an Emacs Lisp frame value. |
638 | 537 end |
567 | 538 |
22012
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
539 define xcompiled |
88155 | 540 xgetptr $ |
541 print (struct Lisp_Vector *) $ptr | |
542 output ($->contents[0])@($->size & 0xff) | |
22012
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
543 end |
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
544 document xcompiled |
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
545 Print $ as a compiled function pointer, assuming it is an Emacs Lisp compiled value. |
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
546 end |
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
547 |
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
548 define xwindow |
88155 | 549 xgetptr $ |
550 print (struct window *) $ptr | |
551 printf "%dx%d+%d+%d\n", $->width, $->height, $->left, $->top | |
22012
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
552 end |
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
553 document xwindow |
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
554 Print $ as a window pointer, assuming it is an Emacs Lisp window value. |
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
555 Print the window's position as "WIDTHxHEIGHT+LEFT+TOP". |
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
556 end |
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
557 |
10495
70bd087c47a9
(xbufobjfwd, xbuflocal, xwinconfig):
Karl Heuer <kwzh@gnu.org>
parents:
10483
diff
changeset
|
558 define xwinconfig |
88155 | 559 xgetptr $ |
560 print (struct save_window_data *) $ptr | |
10483
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
561 end |
10495
70bd087c47a9
(xbufobjfwd, xbuflocal, xwinconfig):
Karl Heuer <kwzh@gnu.org>
parents:
10483
diff
changeset
|
562 document xwinconfig |
10483
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
563 Print $ as a window configuration pointer, assuming it is an Emacs Lisp window configuration value. |
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
564 end |
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
565 |
22012
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
566 define xsubr |
88155 | 567 xgetptr $ |
568 print (struct Lisp_Subr *) $ptr | |
569 output *$ | |
570 echo \n | |
22012
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
571 end |
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
572 document xsubr |
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
573 Print the address of the subr which the Lisp_Object $ points to. |
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
574 end |
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
575 |
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
576 define xchartable |
88155 | 577 xgetptr $ |
578 print (struct Lisp_Char_Table *) $ptr | |
579 printf "Purpose: " | |
580 xprintsym $->purpose | |
581 printf " %d extra slots", ($->size & 0x1ff) - 388 | |
582 echo \n | |
22012
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
583 end |
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
584 document xchartable |
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
585 Print the address of the char-table $, and its purpose. |
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
586 This command assumes that $ is an Emacs Lisp char-table value. |
10483
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
587 end |
22012
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
588 |
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
589 define xboolvector |
88155 | 590 xgetptr $ |
591 print (struct Lisp_Bool_Vector *) $ptr | |
592 output ($->size > 256) ? 0 : ($->data[0])@((($->size & ~gdb_array_mark_flag) + 7)/ 8) | |
593 echo \n | |
22012
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
594 end |
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
595 document xboolvector |
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
596 Print the contents and address of the bool-vector $. |
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
597 This command assumes that $ is an Emacs Lisp bool-vector value. |
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
598 end |
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
599 |
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
600 define xbuffer |
88155 | 601 xgetptr $ |
602 print (struct buffer *) $ptr | |
603 xgetptr $->name | |
604 output ((struct Lisp_String *) $ptr)->data | |
605 echo \n | |
22012
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
606 end |
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
607 document xbuffer |
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
608 Set $ as a buffer pointer, assuming it is an Emacs Lisp buffer value. |
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
609 Print the name of the buffer. |
10483
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
610 end |
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
611 |
30636 | 612 define xhashtable |
88155 | 613 xgetptr $ |
614 print (struct Lisp_Hash_Table *) $ptr | |
30636 | 615 end |
616 document xhashtable | |
617 Set $ as a hash table pointer, assuming it is an Emacs Lisp hash table value. | |
618 end | |
619 | |
567 | 620 define xcons |
88155 | 621 xgetptr $ |
622 print (struct Lisp_Cons *) $ptr | |
623 output/x *$ | |
624 echo \n | |
567 | 625 end |
638 | 626 document xcons |
7962 | 627 Print the contents of $, assuming it is an Emacs Lisp cons. |
638 | 628 end |
567 | 629 |
18522
c572c073c982
(xcons): Print car and cdr in hex.
Richard M. Stallman <rms@gnu.org>
parents:
15536
diff
changeset
|
630 define nextcons |
88155 | 631 p $.u.cdr |
632 xcons | |
18522
c572c073c982
(xcons): Print car and cdr in hex.
Richard M. Stallman <rms@gnu.org>
parents:
15536
diff
changeset
|
633 end |
c572c073c982
(xcons): Print car and cdr in hex.
Richard M. Stallman <rms@gnu.org>
parents:
15536
diff
changeset
|
634 document nextcons |
c572c073c982
(xcons): Print car and cdr in hex.
Richard M. Stallman <rms@gnu.org>
parents:
15536
diff
changeset
|
635 Print the contents of the next cell in a list. |
c572c073c982
(xcons): Print car and cdr in hex.
Richard M. Stallman <rms@gnu.org>
parents:
15536
diff
changeset
|
636 This assumes that the last thing you printed was a cons cell contents |
c572c073c982
(xcons): Print car and cdr in hex.
Richard M. Stallman <rms@gnu.org>
parents:
15536
diff
changeset
|
637 (type struct Lisp_Cons) or a pointer to one. |
c572c073c982
(xcons): Print car and cdr in hex.
Richard M. Stallman <rms@gnu.org>
parents:
15536
diff
changeset
|
638 end |
567 | 639 define xcar |
88155 | 640 xgetptr $ |
641 xgettype $ | |
642 print/x ($type == Lisp_Cons ? ((struct Lisp_Cons *) $ptr)->car : 0) | |
567 | 643 end |
638 | 644 document xcar |
7962 | 645 Print the car of $, assuming it is an Emacs Lisp pair. |
638 | 646 end |
567 | 647 |
648 define xcdr | |
88155 | 649 xgetptr $ |
650 xgettype $ | |
651 print/x ($type == Lisp_Cons ? ((struct Lisp_Cons *) $ptr)->u.cdr : 0) | |
567 | 652 end |
638 | 653 document xcdr |
7962 | 654 Print the cdr of $, assuming it is an Emacs Lisp pair. |
638 | 655 end |
567 | 656 |
4267 | 657 define xfloat |
88155 | 658 xgetptr $ |
659 print ((struct Lisp_Float *) $ptr)->u.data | |
4267 | 660 end |
661 document xfloat | |
662 Print $ assuming it is a lisp floating-point number. | |
663 end | |
664 | |
1789
2c65d1a8af09
* .gdbinit: Add "-geometry +0+0" to default args.
Jim Blandy <jimb@redhat.com>
parents:
1551
diff
changeset
|
665 define xscrollbar |
88155 | 666 xgetptr $ |
667 print (struct scrollbar *) $ptr | |
1789
2c65d1a8af09
* .gdbinit: Add "-geometry +0+0" to default args.
Jim Blandy <jimb@redhat.com>
parents:
1551
diff
changeset
|
668 output *$ |
2c65d1a8af09
* .gdbinit: Add "-geometry +0+0" to default args.
Jim Blandy <jimb@redhat.com>
parents:
1551
diff
changeset
|
669 echo \n |
2c65d1a8af09
* .gdbinit: Add "-geometry +0+0" to default args.
Jim Blandy <jimb@redhat.com>
parents:
1551
diff
changeset
|
670 end |
4268
0795ced6013f
(xscrollbar): Fix typo specifying doc string.
Richard M. Stallman <rms@gnu.org>
parents:
4267
diff
changeset
|
671 document xscrollbar |
1789
2c65d1a8af09
* .gdbinit: Add "-geometry +0+0" to default args.
Jim Blandy <jimb@redhat.com>
parents:
1551
diff
changeset
|
672 Print $ as a scrollbar pointer. |
2c65d1a8af09
* .gdbinit: Add "-geometry +0+0" to default args.
Jim Blandy <jimb@redhat.com>
parents:
1551
diff
changeset
|
673 end |
2c65d1a8af09
* .gdbinit: Add "-geometry +0+0" to default args.
Jim Blandy <jimb@redhat.com>
parents:
1551
diff
changeset
|
674 |
88155 | 675 define xprintstr |
676 set $data = $arg0->data | |
677 output ($arg0->size > 1000) ? 0 : ($data[0])@($arg0->size_byte < 0 ? $arg0->size & ~gdb_array_mark_flag : $arg0->size_byte) | |
678 end | |
679 | |
27290 | 680 define xprintsym |
88155 | 681 xgetptr $arg0 |
682 set $sym = (struct Lisp_Symbol *) $ptr | |
683 xgetptr $sym->xname | |
684 set $sym_name = (struct Lisp_String *) $ptr | |
685 xprintstr $sym_name | |
27290 | 686 end |
687 document xprintsym | |
688 Print argument as a symbol. | |
689 end | |
690 | |
691 define xbacktrace | |
692 set $bt = backtrace_list | |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45966
diff
changeset
|
693 while $bt |
88155 | 694 xgettype (*$bt->function) |
32812
c49b460bb280
(xbacktrace): Handle case that $bt->function isn't
Gerd Moellmann <gerd@gnu.org>
parents:
31960
diff
changeset
|
695 if $type == Lisp_Symbol |
88155 | 696 xprintsym (*$bt->function) |
697 echo \n | |
32812
c49b460bb280
(xbacktrace): Handle case that $bt->function isn't
Gerd Moellmann <gerd@gnu.org>
parents:
31960
diff
changeset
|
698 else |
c49b460bb280
(xbacktrace): Handle case that $bt->function isn't
Gerd Moellmann <gerd@gnu.org>
parents:
31960
diff
changeset
|
699 printf "0x%x ", *$bt->function |
c49b460bb280
(xbacktrace): Handle case that $bt->function isn't
Gerd Moellmann <gerd@gnu.org>
parents:
31960
diff
changeset
|
700 if $type == Lisp_Vectorlike |
88155 | 701 xgetptr (*$bt->function) |
702 set $size = ((struct Lisp_Vector *) $ptr)->size | |
703 output ($size & PVEC_FLAG) ? (enum pvec_type) ($size & PVEC_TYPE_MASK) : $size & ~gdb_array_mark_flag | |
32812
c49b460bb280
(xbacktrace): Handle case that $bt->function isn't
Gerd Moellmann <gerd@gnu.org>
parents:
31960
diff
changeset
|
704 else |
c49b460bb280
(xbacktrace): Handle case that $bt->function isn't
Gerd Moellmann <gerd@gnu.org>
parents:
31960
diff
changeset
|
705 printf "Lisp type %d", $type |
c49b460bb280
(xbacktrace): Handle case that $bt->function isn't
Gerd Moellmann <gerd@gnu.org>
parents:
31960
diff
changeset
|
706 end |
c49b460bb280
(xbacktrace): Handle case that $bt->function isn't
Gerd Moellmann <gerd@gnu.org>
parents:
31960
diff
changeset
|
707 echo \n |
c49b460bb280
(xbacktrace): Handle case that $bt->function isn't
Gerd Moellmann <gerd@gnu.org>
parents:
31960
diff
changeset
|
708 end |
27290 | 709 set $bt = $bt->next |
710 end | |
711 end | |
712 document xbacktrace | |
713 Print a backtrace of Lisp function calls from backtrace_list. | |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45966
diff
changeset
|
714 Set a breakpoint at Fsignal and call this to see from where |
32812
c49b460bb280
(xbacktrace): Handle case that $bt->function isn't
Gerd Moellmann <gerd@gnu.org>
parents:
31960
diff
changeset
|
715 an error was signaled. |
27290 | 716 end |
717 | |
88155 | 718 # Show Lisp backtrace after normal backtrace. |
719 define hookpost-backtrace | |
720 set $bt = backtrace_list | |
721 if $bt | |
722 echo \n | |
723 echo Lisp Backtrace:\n | |
724 xbacktrace | |
725 end | |
726 end | |
727 | |
27290 | 728 define xreload |
88155 | 729 set $tagmask = (((long)1 << gdb_gctypebits) - 1) |
730 set $valmask = gdb_use_lsb ? ~($tagmask) : ((long)1 << gdb_valbits) - 1 | |
27290 | 731 end |
732 document xreload | |
733 When starting Emacs a second time in the same gdb session under | |
88155 | 734 FreeBSD 2.2.5, gdb 4.13, $valmask have lost |
35792
9ec1e59890a2
(hook-run): Define to run xreload.
Dave Love <fx@gnu.org>
parents:
34876
diff
changeset
|
735 their values. (The same happens on current (2000) versions of GNU/Linux |
9ec1e59890a2
(hook-run): Define to run xreload.
Dave Love <fx@gnu.org>
parents:
34876
diff
changeset
|
736 with gdb 5.0.) |
31960
eb2d3d3a8eb5
(xreload): Note its need on GNU/Linux.
Dave Love <fx@gnu.org>
parents:
30636
diff
changeset
|
737 This function reloads them. |
27290 | 738 end |
88155 | 739 xreload |
740 | |
741 # Flush display (X only) | |
742 define ff | |
743 set x_flush (0) | |
744 end | |
745 document ff | |
746 Flush pending X window display updates to screen. | |
747 Works only when an inferior emacs is executing. | |
748 end | |
749 | |
27290 | 750 |
35792
9ec1e59890a2
(hook-run): Define to run xreload.
Dave Love <fx@gnu.org>
parents:
34876
diff
changeset
|
751 define hook-run |
9ec1e59890a2
(hook-run): Define to run xreload.
Dave Love <fx@gnu.org>
parents:
34876
diff
changeset
|
752 xreload |
9ec1e59890a2
(hook-run): Define to run xreload.
Dave Love <fx@gnu.org>
parents:
34876
diff
changeset
|
753 end |
9ec1e59890a2
(hook-run): Define to run xreload.
Dave Love <fx@gnu.org>
parents:
34876
diff
changeset
|
754 |
42907
1865230232b7
(hookpost-run): Defined.
Richard M. Stallman <rms@gnu.org>
parents:
42682
diff
changeset
|
755 # Call xreload if a new Emacs executable is loaded. |
1865230232b7
(hookpost-run): Defined.
Richard M. Stallman <rms@gnu.org>
parents:
42682
diff
changeset
|
756 define hookpost-run |
1865230232b7
(hookpost-run): Defined.
Richard M. Stallman <rms@gnu.org>
parents:
42682
diff
changeset
|
757 xreload |
1865230232b7
(hookpost-run): Defined.
Richard M. Stallman <rms@gnu.org>
parents:
42682
diff
changeset
|
758 end |
1865230232b7
(hookpost-run): Defined.
Richard M. Stallman <rms@gnu.org>
parents:
42682
diff
changeset
|
759 |
638 | 760 set print pretty on |
4267 | 761 set print sevenbit-strings |
567 | 762 |
732 | 763 show environment DISPLAY |
4487 | 764 show environment TERM |
765 set args -geometry 80x40+0+0 | |
732 | 766 |
88155 | 767 # People get bothered when they see messages about non-existent functions... |
768 xgetptr Vsystem_type | |
769 set $tem = (struct Lisp_Symbol *) $ptr | |
770 xgetptr $tem->xname | |
771 set $tem = (struct Lisp_String *) $ptr | |
772 set $tem = (char *) $tem->data | |
773 | |
774 # Don't let abort actually run, as it will make stdio stop working and | |
775 # therefore the `pr' command above as well. | |
776 if $tem[0] == 'w' && $tem[1] == 'i' && $tem[2] == 'n' && $tem[3] == 'd' | |
777 # The windows-nt build replaces abort with its own function. | |
778 break w32_abort | |
779 else | |
780 break abort | |
781 end | |
567 | 782 |
88155 | 783 # x_error_quitter is defined only on X. But window-system is set up |
784 # only at run time, during Emacs startup, so we need to defer setting | |
785 # the breakpoint. init_sys_modes is the first function called on | |
786 # every platform after init_display, where window-system is set. | |
787 tbreak init_sys_modes | |
788 commands | |
789 silent | |
790 xgetptr Vwindow_system | |
791 set $tem = (struct Lisp_Symbol *) $ptr | |
792 xgetptr $tem->xname | |
793 set $tem = (struct Lisp_String *) $ptr | |
794 set $tem = (char *) $tem->data | |
795 # If we are running in synchronous mode, we want a chance to look | |
796 # around before Emacs exits. Perhaps we should put the break | |
797 # somewhere else instead... | |
798 if $tem[0] == 'x' && $tem[1] == '\0' | |
799 break x_error_quitter | |
800 end | |
801 continue | |
802 end | |
803 # arch-tag: 12f34321-7bfa-4240-b77a-3cd3a1696dfe |