comparison etc/DEBUG @ 66719:c0eb744f79f7

Describe how to provide preprocessor macro information.
author Nick Roberts <nickrob@snap.net.nz>
date Sat, 05 Nov 2005 10:09:27 +0000
parents 98ed2e52cea0
children e8a3fb527b77 7beb78bc1f8e
comparison
equal deleted inserted replaced
66718:f1ce812719c6 66719:c0eb744f79f7
156 we want the address of the l-value expression near the bottom of 156 we want the address of the l-value expression near the bottom of
157 `add_command_key' from keyboard.c: 157 `add_command_key' from keyboard.c:
158 158
159 XVECTOR (this_command_keys)->contents[this_command_key_count++] = key; 159 XVECTOR (this_command_keys)->contents[this_command_key_count++] = key;
160 160
161 XVECTOR is a macro, and therefore, in general, GDB does not know about it. 161 XVECTOR is a macro, so GDB only knows about it if Emacs has been compiled with
162 Unless Emacs has been compiled with preprocessor macro info, GDB cannot 162 preprocessor macro information. GCC provides this if you specify the options
163 evaluate "p XVECTOR (this_command_keys)" . 163 `-gdwarf-2' and `-g3'. In this case, GDB can evaluate expressions like
164 164 "p XVECTOR (this_command_keys)".
165 However, you can use the xvector command in GDB to get the same 165
166 result. Here is how: 166 When this information isn't available, you can use the xvector command in GDB
167 to get the same result. Here is how:
167 168
168 (gdb) p this_command_keys 169 (gdb) p this_command_keys
169 $1 = 1078005760 170 $1 = 1078005760
170 (gdb) xvector 171 (gdb) xvector
171 $2 = (struct Lisp_Vector *) 0x411000 172 $2 = (struct Lisp_Vector *) 0x411000