Mercurial > emacs
annotate src/.gdbinit @ 29238:552f0327e586
subr-arity
author | Dave Love <fx@gnu.org> |
---|---|
date | Fri, 26 May 2000 10:28:09 +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 |