Mercurial > emacs
annotate src/.gdbinit @ 28923:dcafe3c9cd6c
(sh-while-getopts) <sh>: Handle case that
user-specified option string is empty.
| author | Gerd Moellmann <gerd@gnu.org> |
|---|---|
| date | Mon, 15 May 2000 20:14:39 +0000 |
| parents | c26a9f95a880 |
| children | 88e0ba67d3bc |
| rev | line source |
|---|---|
|
13359
4c60f92bdaa6
Do `set main' to make gdb_valbits etc. available.
Richard M. Stallman <rms@gnu.org>
parents:
12278
diff
changeset
|
1 # 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
|
2 set main |
|
4c60f92bdaa6
Do `set main' to make gdb_valbits etc. available.
Richard M. Stallman <rms@gnu.org>
parents:
12278
diff
changeset
|
3 |
| 15536 | 4 # Find lwlib source files too. |
| 5 dir ../lwlib | |
| 6 | |
| 20672 | 7 # Don't enter GDB when user types C-g to quit. |
| 8 # This has one unfortunate effect: you can't type C-c | |
| 9 # at the GDB to stop Emacs, when using X. | |
| 10 # However, C-z works just as well in that case. | |
| 11 handle 2 noprint pass | |
| 12 | |
| 13 # Set up a mask to use. | |
|
12278
6882fe187fa9
Use long, not EMACS_INT.
Richard M. Stallman <rms@gnu.org>
parents:
12248
diff
changeset
|
14 # This should be EMACS_INT, but in some cases that is a macro. |
|
6882fe187fa9
Use long, not EMACS_INT.
Richard M. Stallman <rms@gnu.org>
parents:
12248
diff
changeset
|
15 # long ought to work in all cases right now. |
|
6882fe187fa9
Use long, not EMACS_INT.
Richard M. Stallman <rms@gnu.org>
parents:
12248
diff
changeset
|
16 set $valmask = ((long)1 << gdb_valbits) - 1 |
|
11872
a28bd38b2ff3
gdb_lisp_params to get storage layout info.
Karl Heuer <kwzh@gnu.org>
parents:
11006
diff
changeset
|
17 set $nonvalbits = gdb_emacs_intbits - gdb_valbits |
|
a28bd38b2ff3
gdb_lisp_params to get storage layout info.
Karl Heuer <kwzh@gnu.org>
parents:
11006
diff
changeset
|
18 |
| 567 | 19 # Set up something to print out s-expressions. |
| 20 define pr | |
| 6534 | 21 set debug_print ($) |
| 567 | 22 end |
| 23 document pr | |
| 24 Print the emacs s-expression which is $. | |
| 25 Works only when an inferior emacs is executing. | |
| 26 end | |
| 27 | |
| 28 define xtype | |
|
11872
a28bd38b2ff3
gdb_lisp_params to get storage layout info.
Karl Heuer <kwzh@gnu.org>
parents:
11006
diff
changeset
|
29 output (enum Lisp_Type) (($ >> gdb_valbits) & 0x7) |
|
10299
0de933eb95a2
Adapt to new Lisp_Object format.
Richard M. Stallman <rms@gnu.org>
parents:
8310
diff
changeset
|
30 echo \n |
|
11872
a28bd38b2ff3
gdb_lisp_params to get storage layout info.
Karl Heuer <kwzh@gnu.org>
parents:
11006
diff
changeset
|
31 output ((($ >> gdb_valbits) & 0x7) == Lisp_Misc ? (enum Lisp_Misc_Type) (((struct Lisp_Free *) (($ & $valmask) | gdb_data_seg_bits))->type) : (($ >> gdb_valbits) & 0x7) == Lisp_Vectorlike ? ($size = ((struct Lisp_Vector *) (($ & $valmask) | gdb_data_seg_bits))->size, (enum pvec_type) (($size & PVEC_FLAG) ? $size & PVEC_TYPE_MASK : 0)) : 0) |
| 999 | 32 echo \n |
| 567 | 33 end |
| 638 | 34 document xtype |
| 7962 | 35 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
|
36 If the first type printed is Lisp_Vector or Lisp_Misc, |
|
0de933eb95a2
Adapt to new Lisp_Object format.
Richard M. Stallman <rms@gnu.org>
parents:
8310
diff
changeset
|
37 the second line gives the more precise type. |
|
0de933eb95a2
Adapt to new Lisp_Object format.
Richard M. Stallman <rms@gnu.org>
parents:
8310
diff
changeset
|
38 Otherwise the second line doesn't mean anything. |
|
0de933eb95a2
Adapt to new Lisp_Object format.
Richard M. Stallman <rms@gnu.org>
parents:
8310
diff
changeset
|
39 end |
|
0de933eb95a2
Adapt to new Lisp_Object format.
Richard M. Stallman <rms@gnu.org>
parents:
8310
diff
changeset
|
40 |
|
0de933eb95a2
Adapt to new Lisp_Object format.
Richard M. Stallman <rms@gnu.org>
parents:
8310
diff
changeset
|
41 define xvectype |
|
11872
a28bd38b2ff3
gdb_lisp_params to get storage layout info.
Karl Heuer <kwzh@gnu.org>
parents:
11006
diff
changeset
|
42 set $size = ((struct Lisp_Vector *) (($ & $valmask) | gdb_data_seg_bits))->size |
|
10299
0de933eb95a2
Adapt to new Lisp_Object format.
Richard M. Stallman <rms@gnu.org>
parents:
8310
diff
changeset
|
43 output (enum pvec_type) (($size & PVEC_FLAG) ? $size & PVEC_TYPE_MASK : 0) |
|
0de933eb95a2
Adapt to new Lisp_Object format.
Richard M. Stallman <rms@gnu.org>
parents:
8310
diff
changeset
|
44 echo \n |
|
0de933eb95a2
Adapt to new Lisp_Object format.
Richard M. Stallman <rms@gnu.org>
parents:
8310
diff
changeset
|
45 end |
|
0de933eb95a2
Adapt to new Lisp_Object format.
Richard M. Stallman <rms@gnu.org>
parents:
8310
diff
changeset
|
46 document xvectype |
|
0de933eb95a2
Adapt to new Lisp_Object format.
Richard M. Stallman <rms@gnu.org>
parents:
8310
diff
changeset
|
47 Print the vector subtype of $, assuming it is a vector or pseudovector. |
|
0de933eb95a2
Adapt to new Lisp_Object format.
Richard M. Stallman <rms@gnu.org>
parents:
8310
diff
changeset
|
48 end |
|
0de933eb95a2
Adapt to new Lisp_Object format.
Richard M. Stallman <rms@gnu.org>
parents:
8310
diff
changeset
|
49 |
|
0de933eb95a2
Adapt to new Lisp_Object format.
Richard M. Stallman <rms@gnu.org>
parents:
8310
diff
changeset
|
50 define xmisctype |
|
11872
a28bd38b2ff3
gdb_lisp_params to get storage layout info.
Karl Heuer <kwzh@gnu.org>
parents:
11006
diff
changeset
|
51 output (enum Lisp_Misc_Type) (((struct Lisp_Free *) (($ & $valmask) | gdb_data_seg_bits))->type) |
|
10299
0de933eb95a2
Adapt to new Lisp_Object format.
Richard M. Stallman <rms@gnu.org>
parents:
8310
diff
changeset
|
52 echo \n |
|
0de933eb95a2
Adapt to new Lisp_Object format.
Richard M. Stallman <rms@gnu.org>
parents:
8310
diff
changeset
|
53 end |
|
0de933eb95a2
Adapt to new Lisp_Object format.
Richard M. Stallman <rms@gnu.org>
parents:
8310
diff
changeset
|
54 document xmisctype |
|
0de933eb95a2
Adapt to new Lisp_Object format.
Richard M. Stallman <rms@gnu.org>
parents:
8310
diff
changeset
|
55 Print the specific type of $, assuming it is some misc type. |
| 638 | 56 end |
| 567 | 57 |
| 58 define xint | |
|
11872
a28bd38b2ff3
gdb_lisp_params to get storage layout info.
Karl Heuer <kwzh@gnu.org>
parents:
11006
diff
changeset
|
59 print (($ & $valmask) << $nonvalbits) >> $nonvalbits |
| 567 | 60 end |
| 638 | 61 document xint |
| 7962 | 62 Print $, assuming it is an Emacs Lisp integer. This gets the sign right. |
| 638 | 63 end |
| 567 | 64 |
| 65 define xptr | |
|
11872
a28bd38b2ff3
gdb_lisp_params to get storage layout info.
Karl Heuer <kwzh@gnu.org>
parents:
11006
diff
changeset
|
66 print (void *) (($ & $valmask) | gdb_data_seg_bits) |
| 567 | 67 end |
| 638 | 68 document xptr |
| 7962 | 69 Print the pointer portion of $, assuming it is an Emacs Lisp value. |
| 638 | 70 end |
| 567 | 71 |
| 72 define xmarker | |
|
11872
a28bd38b2ff3
gdb_lisp_params to get storage layout info.
Karl Heuer <kwzh@gnu.org>
parents:
11006
diff
changeset
|
73 print (struct Lisp_Marker *) (($ & $valmask) | gdb_data_seg_bits) |
| 567 | 74 end |
| 638 | 75 document xmarker |
| 7962 | 76 Print $ as a marker pointer, assuming it is an Emacs Lisp marker value. |
| 638 | 77 end |
| 567 | 78 |
|
10483
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
79 define xoverlay |
|
11872
a28bd38b2ff3
gdb_lisp_params to get storage layout info.
Karl Heuer <kwzh@gnu.org>
parents:
11006
diff
changeset
|
80 print (struct Lisp_Overlay *) (($ & $valmask) | gdb_data_seg_bits) |
|
10483
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
81 end |
|
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
82 document xoverlay |
|
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
83 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
|
84 end |
|
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
85 |
|
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
86 define xmiscfree |
|
11872
a28bd38b2ff3
gdb_lisp_params to get storage layout info.
Karl Heuer <kwzh@gnu.org>
parents:
11006
diff
changeset
|
87 print (struct Lisp_Free *) (($ & $valmask) | gdb_data_seg_bits) |
|
10483
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
88 end |
|
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
89 document xmiscfree |
|
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
90 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
|
91 end |
|
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
92 |
|
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
93 define xintfwd |
|
11872
a28bd38b2ff3
gdb_lisp_params to get storage layout info.
Karl Heuer <kwzh@gnu.org>
parents:
11006
diff
changeset
|
94 print (struct Lisp_Intfwd *) (($ & $valmask) | gdb_data_seg_bits) |
|
10483
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
95 end |
|
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
96 document xintfwd |
|
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
97 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
|
98 end |
|
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
99 |
|
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
100 define xboolfwd |
|
11872
a28bd38b2ff3
gdb_lisp_params to get storage layout info.
Karl Heuer <kwzh@gnu.org>
parents:
11006
diff
changeset
|
101 print (struct Lisp_Boolfwd *) (($ & $valmask) | gdb_data_seg_bits) |
|
10483
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
102 end |
|
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
103 document xboolfwd |
|
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
104 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
|
105 end |
|
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
106 |
|
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
107 define xobjfwd |
|
11872
a28bd38b2ff3
gdb_lisp_params to get storage layout info.
Karl Heuer <kwzh@gnu.org>
parents:
11006
diff
changeset
|
108 print (struct Lisp_Objfwd *) (($ & $valmask) | gdb_data_seg_bits) |
|
10483
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
109 end |
|
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
110 document xobjfwd |
|
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
111 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
|
112 end |
|
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
113 |
|
10495
70bd087c47a9
(xbufobjfwd, xbuflocal, xwinconfig):
Karl Heuer <kwzh@gnu.org>
parents:
10483
diff
changeset
|
114 define xbufobjfwd |
|
11872
a28bd38b2ff3
gdb_lisp_params to get storage layout info.
Karl Heuer <kwzh@gnu.org>
parents:
11006
diff
changeset
|
115 print (struct Lisp_Buffer_Objfwd *) (($ & $valmask) | gdb_data_seg_bits) |
|
10483
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
116 end |
|
10495
70bd087c47a9
(xbufobjfwd, xbuflocal, xwinconfig):
Karl Heuer <kwzh@gnu.org>
parents:
10483
diff
changeset
|
117 document xbufobjfwd |
|
10483
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
118 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
|
119 end |
|
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
120 |
|
11006
2aa4135eee50
(xkbobjfwd): Renamed from xdispobjfwd.
Karl Heuer <kwzh@gnu.org>
parents:
10582
diff
changeset
|
121 define xkbobjfwd |
|
11872
a28bd38b2ff3
gdb_lisp_params to get storage layout info.
Karl Heuer <kwzh@gnu.org>
parents:
11006
diff
changeset
|
122 print (struct Lisp_Kboard_Objfwd *) (($ & $valmask) | gdb_data_seg_bits) |
| 10582 | 123 end |
|
11006
2aa4135eee50
(xkbobjfwd): Renamed from xdispobjfwd.
Karl Heuer <kwzh@gnu.org>
parents:
10582
diff
changeset
|
124 document xkbobjfwd |
|
2aa4135eee50
(xkbobjfwd): Renamed from xdispobjfwd.
Karl Heuer <kwzh@gnu.org>
parents:
10582
diff
changeset
|
125 Print $ as a kboard-local object forwarding pointer, assuming it is an Emacs Lisp Misc value. |
| 10582 | 126 end |
| 127 | |
|
10495
70bd087c47a9
(xbufobjfwd, xbuflocal, xwinconfig):
Karl Heuer <kwzh@gnu.org>
parents:
10483
diff
changeset
|
128 define xbuflocal |
|
11872
a28bd38b2ff3
gdb_lisp_params to get storage layout info.
Karl Heuer <kwzh@gnu.org>
parents:
11006
diff
changeset
|
129 print (struct Lisp_Buffer_Local_Value *) (($ & $valmask) | gdb_data_seg_bits) |
|
10483
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
130 end |
|
10495
70bd087c47a9
(xbufobjfwd, xbuflocal, xwinconfig):
Karl Heuer <kwzh@gnu.org>
parents:
10483
diff
changeset
|
131 document xbuflocal |
|
10483
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
132 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
|
133 end |
|
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
134 |
| 567 | 135 define xsymbol |
|
11872
a28bd38b2ff3
gdb_lisp_params to get storage layout info.
Karl Heuer <kwzh@gnu.org>
parents:
11006
diff
changeset
|
136 print (struct Lisp_Symbol *) ((((int) $) & $valmask) | gdb_data_seg_bits) |
| 27290 | 137 output (char*)$->name->data |
| 999 | 138 echo \n |
| 567 | 139 end |
| 638 | 140 document xsymbol |
| 141 Print the name and address of the symbol $. | |
| 7962 | 142 This command assumes that $ is an Emacs Lisp symbol value. |
| 638 | 143 end |
| 567 | 144 |
| 145 define xstring | |
|
11872
a28bd38b2ff3
gdb_lisp_params to get storage layout info.
Karl Heuer <kwzh@gnu.org>
parents:
11006
diff
changeset
|
146 print (struct Lisp_String *) (($ & $valmask) | gdb_data_seg_bits) |
|
22012
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
147 output ($->size > 1000) ? 0 : ($->data[0])@($->size_byte < 0 ? $->size : $->size_byte) |
| 999 | 148 echo \n |
| 567 | 149 end |
| 150 document xstring | |
| 638 | 151 Print the contents and address of the string $. |
| 7962 | 152 This command assumes that $ is an Emacs Lisp string value. |
| 567 | 153 end |
| 154 | |
| 155 define xvector | |
|
11872
a28bd38b2ff3
gdb_lisp_params to get storage layout info.
Karl Heuer <kwzh@gnu.org>
parents:
11006
diff
changeset
|
156 print (struct Lisp_Vector *) (($ & $valmask) | gdb_data_seg_bits) |
|
7961
f3e1a5c7bba1
(xsymbol): Cast $ to int.
Richard M. Stallman <rms@gnu.org>
parents:
6534
diff
changeset
|
157 output ($->size > 50) ? 0 : ($->contents[0])@($->size) |
| 999 | 158 echo \n |
| 567 | 159 end |
| 160 document xvector | |
| 638 | 161 Print the contents and address of the vector $. |
| 7962 | 162 This command assumes that $ is an Emacs Lisp vector value. |
| 567 | 163 end |
| 164 | |
|
22012
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
165 define xprocess |
|
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
166 print (struct Lisp_Process *) (($ & $valmask) | gdb_data_seg_bits) |
|
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
167 output *$ |
|
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
168 echo \n |
|
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
169 end |
|
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
170 document xprocess |
|
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
171 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
|
172 end |
|
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
173 |
| 1113 | 174 define xframe |
|
11872
a28bd38b2ff3
gdb_lisp_params to get storage layout info.
Karl Heuer <kwzh@gnu.org>
parents:
11006
diff
changeset
|
175 print (struct frame *) (($ & $valmask) | gdb_data_seg_bits) |
| 567 | 176 end |
| 1113 | 177 document xframe |
| 7962 | 178 Print $ as a frame pointer, assuming it is an Emacs Lisp frame value. |
| 638 | 179 end |
| 567 | 180 |
|
22012
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
181 define xcompiled |
|
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
182 print (struct Lisp_Vector *) (($ & $valmask) | gdb_data_seg_bits) |
|
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
183 output ($->contents[0])@($->size & 0xff) |
|
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
184 end |
|
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
185 document xcompiled |
|
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
186 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
|
187 end |
|
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
188 |
|
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
189 define xwindow |
|
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
190 print (struct window *) (($ & $valmask) | gdb_data_seg_bits) |
|
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
191 printf "%dx%d+%d+%d\n", $->width, $->height, $->left, $->top |
|
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
192 end |
|
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
193 document xwindow |
|
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
194 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
|
195 Print the window's position as "WIDTHxHEIGHT+LEFT+TOP". |
|
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
196 end |
|
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
197 |
|
10495
70bd087c47a9
(xbufobjfwd, xbuflocal, xwinconfig):
Karl Heuer <kwzh@gnu.org>
parents:
10483
diff
changeset
|
198 define xwinconfig |
|
11872
a28bd38b2ff3
gdb_lisp_params to get storage layout info.
Karl Heuer <kwzh@gnu.org>
parents:
11006
diff
changeset
|
199 print (struct save_window_data *) (($ & $valmask) | gdb_data_seg_bits) |
|
10483
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
200 end |
|
10495
70bd087c47a9
(xbufobjfwd, xbuflocal, xwinconfig):
Karl Heuer <kwzh@gnu.org>
parents:
10483
diff
changeset
|
201 document xwinconfig |
|
10483
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
202 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
|
203 end |
|
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
204 |
|
22012
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
205 define xsubr |
|
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
206 print (struct Lisp_Subr *) (($ & $valmask) | gdb_data_seg_bits) |
|
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
207 output *$ |
|
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
208 echo \n |
|
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
209 end |
|
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
210 document xsubr |
|
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
211 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
|
212 end |
|
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
213 |
|
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
214 define xchartable |
|
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
215 print (struct Lisp_Char_Table *) (($ & $valmask) | gdb_data_seg_bits) |
|
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
216 printf "Purpose: " |
|
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
217 output (char*)&((struct Lisp_Symbol *) ((((int) $->purpose) & $valmask) | gdb_data_seg_bits))->name->data |
|
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
218 printf " %d extra slots", ($->size & 0x1ff) - 388 |
|
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
219 echo \n |
|
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
220 end |
|
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
221 document xchartable |
|
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
222 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
|
223 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
|
224 end |
|
22012
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
225 |
|
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
226 define xboolvector |
|
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
227 print (struct Lisp_Bool_Vector *) (($ & $valmask) | gdb_data_seg_bits) |
|
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
228 output ($->size > 256) ? 0 : ($->data[0])@(($->size + 7)/ 8) |
|
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
229 echo \n |
|
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
230 end |
|
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
231 document xboolvector |
|
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
232 Print the contents and address of the bool-vector $. |
|
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
233 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
|
234 end |
|
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
235 |
|
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
236 define xbuffer |
|
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
237 print (struct buffer *) (($ & $valmask) | gdb_data_seg_bits) |
|
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
238 output &((struct Lisp_String *) ((($->name) & $valmask) | gdb_data_seg_bits))->data |
|
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
239 echo \n |
|
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
240 end |
|
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
241 document xbuffer |
|
4379a41b6f2e
(xstring): Handle unibyte strings.
Richard M. Stallman <rms@gnu.org>
parents:
20672
diff
changeset
|
242 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
|
243 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
|
244 end |
|
727cd2061e2a
(xboolfwd, xbuffer_local_value, xbuffer_objfwd, xcompiled, xintfwd, xmiscfree,
Karl Heuer <kwzh@gnu.org>
parents:
10337
diff
changeset
|
245 |
| 567 | 246 define xcons |
|
11872
a28bd38b2ff3
gdb_lisp_params to get storage layout info.
Karl Heuer <kwzh@gnu.org>
parents:
11006
diff
changeset
|
247 print (struct Lisp_Cons *) (($ & $valmask) | gdb_data_seg_bits) |
|
18522
c572c073c982
(xcons): Print car and cdr in hex.
Richard M. Stallman <rms@gnu.org>
parents:
15536
diff
changeset
|
248 output/x *$ |
| 999 | 249 echo \n |
| 567 | 250 end |
| 638 | 251 document xcons |
| 7962 | 252 Print the contents of $, assuming it is an Emacs Lisp cons. |
| 638 | 253 end |
| 567 | 254 |
|
18522
c572c073c982
(xcons): Print car and cdr in hex.
Richard M. Stallman <rms@gnu.org>
parents:
15536
diff
changeset
|
255 define nextcons |
|
c572c073c982
(xcons): Print car and cdr in hex.
Richard M. Stallman <rms@gnu.org>
parents:
15536
diff
changeset
|
256 p $.cdr |
|
c572c073c982
(xcons): Print car and cdr in hex.
Richard M. Stallman <rms@gnu.org>
parents:
15536
diff
changeset
|
257 xcons |
|
c572c073c982
(xcons): Print car and cdr in hex.
Richard M. Stallman <rms@gnu.org>
parents:
15536
diff
changeset
|
258 end |
|
c572c073c982
(xcons): Print car and cdr in hex.
Richard M. Stallman <rms@gnu.org>
parents:
15536
diff
changeset
|
259 document nextcons |
|
c572c073c982
(xcons): Print car and cdr in hex.
Richard M. Stallman <rms@gnu.org>
parents:
15536
diff
changeset
|
260 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
|
261 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
|
262 (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
|
263 end |
| 567 | 264 define xcar |
|
18835
8b32c6fe8728
(xcar, xcdr): Print with /x.
Richard M. Stallman <rms@gnu.org>
parents:
18522
diff
changeset
|
265 print/x ((($ >> gdb_valbits) & 0xf) == Lisp_Cons ? ((struct Lisp_Cons *) (($ & $valmask) | gdb_data_seg_bits))->car : 0) |
| 567 | 266 end |
| 638 | 267 document xcar |
| 7962 | 268 Print the car of $, assuming it is an Emacs Lisp pair. |
| 638 | 269 end |
| 567 | 270 |
| 271 define xcdr | |
|
18835
8b32c6fe8728
(xcar, xcdr): Print with /x.
Richard M. Stallman <rms@gnu.org>
parents:
18522
diff
changeset
|
272 print/x ((($ >> gdb_valbits) & 0xf) == Lisp_Cons ? ((struct Lisp_Cons *) (($ & $valmask) | gdb_data_seg_bits))->cdr : 0) |
| 567 | 273 end |
| 638 | 274 document xcdr |
| 7962 | 275 Print the cdr of $, assuming it is an Emacs Lisp pair. |
| 638 | 276 end |
| 567 | 277 |
| 4267 | 278 define xfloat |
|
11872
a28bd38b2ff3
gdb_lisp_params to get storage layout info.
Karl Heuer <kwzh@gnu.org>
parents:
11006
diff
changeset
|
279 print ((struct Lisp_Float *) (($ & $valmask) | gdb_data_seg_bits))->data |
| 4267 | 280 end |
| 281 document xfloat | |
| 282 Print $ assuming it is a lisp floating-point number. | |
| 283 end | |
| 284 | |
|
1789
2c65d1a8af09
* .gdbinit: Add "-geometry +0+0" to default args.
Jim Blandy <jimb@redhat.com>
parents:
1551
diff
changeset
|
285 define xscrollbar |
|
11872
a28bd38b2ff3
gdb_lisp_params to get storage layout info.
Karl Heuer <kwzh@gnu.org>
parents:
11006
diff
changeset
|
286 print (struct scrollbar *) (($ & $valmask) | gdb_data_seg_bits) |
|
1789
2c65d1a8af09
* .gdbinit: Add "-geometry +0+0" to default args.
Jim Blandy <jimb@redhat.com>
parents:
1551
diff
changeset
|
287 output *$ |
|
2c65d1a8af09
* .gdbinit: Add "-geometry +0+0" to default args.
Jim Blandy <jimb@redhat.com>
parents:
1551
diff
changeset
|
288 echo \n |
|
2c65d1a8af09
* .gdbinit: Add "-geometry +0+0" to default args.
Jim Blandy <jimb@redhat.com>
parents:
1551
diff
changeset
|
289 end |
|
4268
0795ced6013f
(xscrollbar): Fix typo specifying doc string.
Richard M. Stallman <rms@gnu.org>
parents:
4267
diff
changeset
|
290 document xscrollbar |
|
1789
2c65d1a8af09
* .gdbinit: Add "-geometry +0+0" to default args.
Jim Blandy <jimb@redhat.com>
parents:
1551
diff
changeset
|
291 Print $ as a scrollbar pointer. |
|
2c65d1a8af09
* .gdbinit: Add "-geometry +0+0" to default args.
Jim Blandy <jimb@redhat.com>
parents:
1551
diff
changeset
|
292 end |
|
2c65d1a8af09
* .gdbinit: Add "-geometry +0+0" to default args.
Jim Blandy <jimb@redhat.com>
parents:
1551
diff
changeset
|
293 |
| 27290 | 294 define xprintsym |
| 295 set $sym = (struct Lisp_Symbol *) ((((int) $arg0) & $valmask) | gdb_data_seg_bits) | |
| 296 output (char*)$sym->name->data | |
| 297 echo \n | |
| 298 end | |
| 299 document xprintsym | |
| 300 Print argument as a symbol. | |
| 301 end | |
| 302 | |
| 303 define xbacktrace | |
| 304 set $bt = backtrace_list | |
| 305 while $bt | |
| 306 xprintsym *$bt->function | |
| 307 set $bt = $bt->next | |
| 308 end | |
| 309 end | |
| 310 document xbacktrace | |
| 311 Print a backtrace of Lisp function calls from backtrace_list. | |
| 312 Set a breakpoint at Fsignal and call this to see from where | |
| 313 an error was signalled. | |
| 314 end | |
| 315 | |
| 316 define xreload | |
| 317 set $valmask = ((long)1 << gdb_valbits) - 1 | |
| 318 set $nonvalbits = gdb_emacs_intbits - gdb_valbits | |
| 319 end | |
| 320 document xreload | |
| 321 When starting Emacs a second time in the same gdb session under | |
| 322 FreeBSD 2.2.5, gdb 4.13, $valmask and $nonvalbits have lost | |
| 323 their values. This function reloads them. | |
| 324 end | |
| 325 | |
| 638 | 326 set print pretty on |
| 4267 | 327 set print sevenbit-strings |
| 567 | 328 |
| 732 | 329 show environment DISPLAY |
| 4487 | 330 show environment TERM |
| 331 set args -geometry 80x40+0+0 | |
| 732 | 332 |
| 567 | 333 # Don't let abort actually run, as it will make |
| 2162 | 334 # stdio stop working and therefore the `pr' command above as well. |
| 567 | 335 break abort |
| 336 | |
| 337 # If we are running in synchronous mode, we want a chance to look around | |
| 338 # before Emacs exits. Perhaps we should put the break somewhere else | |
| 339 # instead... | |
|
8310
def3ab3a6f01
Set the breakpoint in x_error_quitter instead of _XPrintDefaultError.
Richard M. Stallman <rms@gnu.org>
parents:
7962
diff
changeset
|
340 break x_error_quitter |
