(Fload): Forward all 4 args to magic-name handler.
[bpt/emacs.git] / src / .gdbinit
1 # Set up something to print out s-expressions.
2 define pr
3 set Fprin1 ($, Qexternal_debugging_output)
4 echo \n
5 end
6 document pr
7 Print the emacs s-expression which is $.
8 Works only when an inferior emacs is executing.
9 end
10
11 # Set this to the same thing as the DATA_SEG_BITS macro in your
12 # machine-description files.
13 set $data_seg_bits = 0
14
15 define mips
16 set $data_seg_bits = 0x10000000
17 end
18 document mips
19 Set up the xfoo macros to deal with the MIPS processor.
20 Specifically, this sets $data_seg_bits to the right thing.
21 end
22
23 define xtype
24 output (enum Lisp_Type) (($ >> 24) & 0x7f)
25 echo \n
26 end
27 document xtype
28 Print the type of $, assuming it is an Elisp value.
29 end
30
31 define xint
32 print (($ & 0x00ffffff) << 8) >> 8
33 end
34 document xint
35 Print $, assuming it is an Elisp integer. This gets the sign right.
36 end
37
38 define xptr
39 print (void *) (($ & 0x00ffffff) | $data_seg_bits)
40 end
41 document xptr
42 Print the pointer portion of $, assuming it is an Elisp value.
43 end
44
45 define xwindow
46 print (struct window *) (($ & 0x00ffffff) | $data_seg_bits)
47 printf "%dx%d+%d+%d\n", $->width, $->height, $->left, $->top
48 end
49 document xwindow
50 Print $ as a window pointer, assuming it is an Elisp window value.
51 Print the window's position as "WIDTHxHEIGHT+LEFT+TOP".
52 end
53
54 define xmarker
55 print (struct Lisp_Marker *) (($ & 0x00ffffff) | $data_seg_bits)
56 end
57 document xmarker
58 Print $ as a marker pointer, assuming it is an Elisp marker value.
59 end
60
61 define xbuffer
62 print (struct buffer *) (($ & 0x00ffffff) | $data_seg_bits)
63 output &((struct Lisp_String *) ((($->name) & 0x00ffffff) | $data_seg_bits))->data
64 echo \n
65 end
66 document xbuffer
67 Set $ as a buffer pointer, assuming it is an Elisp buffer value.
68 Print the name of the buffer.
69 end
70
71 define xsymbol
72 print (struct Lisp_Symbol *) (($ & 0x00ffffff) | $data_seg_bits)
73 output &$->name->data
74 echo \n
75 end
76 document xsymbol
77 Print the name and address of the symbol $.
78 This command assumes that $ is an Elisp symbol value.
79 end
80
81 define xstring
82 print (struct Lisp_String *) (($ & 0x00ffffff) | $data_seg_bits)
83 output ($->size > 10000) ? "big string" : ($->data[0])@($->size)
84 echo \n
85 end
86 document xstring
87 Print the contents and address of the string $.
88 This command assumes that $ is an Elisp string value.
89 end
90
91 define xvector
92 print (struct Lisp_Vector *) (($ & 0x00ffffff) | $data_seg_bits)
93 output ($->size > 1000) ? "big vector" : ($->contents[0])@($->size)
94 echo \n
95 end
96 document xvector
97 Print the contents and address of the vector $.
98 This command assumes that $ is an Elisp vector value.
99 end
100
101 define xframe
102 print (struct frame *) (($ & 0x00ffffff) | $data_seg_bits)
103 end
104 document xframe
105 Print $ as a frame pointer, assuming it is an Elisp frame value.
106 end
107
108 define xcons
109 print (struct Lisp_Cons *) (($ & 0x00ffffff) | $data_seg_bits)
110 output *$
111 echo \n
112 end
113 document xcons
114 Print the contents of $, assuming it is an Elisp cons.
115 end
116
117 define xcar
118 print ((($ >> 24) & 0x7f) == Lisp_Cons ? ((struct Lisp_Cons *) (($ & 0x00ffffff) | $data_seg_bits))->car : 0)
119 end
120 document xcar
121 Print the car of $, assuming it is an Elisp pair.
122 end
123
124 define xcdr
125 print ((($ >> 24) & 0x7f) == Lisp_Cons ? ((struct Lisp_Cons *) (($ & 0x00ffffff) | $data_seg_bits))->cdr : 0)
126 end
127 document xcdr
128 Print the cdr of $, assuming it is an Elisp pair.
129 end
130
131 define xsubr
132 print (struct Lisp_Subr *) (($ & 0x00ffffff) | $data_seg_bits)
133 output *$
134 echo \n
135 end
136 document xsubr
137 Print the address of the subr which the Lisp_Object $ points to.
138 end
139
140 define xprocess
141 print (struct Lisp_Process *) (($ & 0x00ffffff) | $data_seg_bits)
142 output *$
143 echo \n
144 end
145 document xprocess
146 Print the address of the struct Lisp_process which the Lisp_Object $ points to.
147 end
148
149 define xscrollbar
150 print (struct scrollbar *) (($ & 0x00ffffff) | $data_seg_bits)
151 output *$
152 echo \n
153 end
154 document xsubr
155 Print $ as a scrollbar pointer.
156 end
157
158 set print pretty on
159
160 unset environment TERMCAP
161 unset environment TERM
162 echo TERMCAP and TERM environment variables unset.\n
163 show environment DISPLAY
164 set args -q -geometry +0+0
165
166 # Don't let abort actually run, as it will make
167 # stdio stop working and therefore the `pr' command above as well.
168 break abort
169
170 # If we are running in synchronous mode, we want a chance to look around
171 # before Emacs exits. Perhaps we should put the break somewhere else
172 # instead...
173 break _XPrintDefaultError
174