diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/.gdbinit | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/src/.gdbinit b/src/.gdbinit index 3d72ea91012..fbad00bcc53 100644 --- a/src/.gdbinit +++ b/src/.gdbinit | |||
| @@ -315,14 +315,26 @@ end | |||
| 315 | define xbacktrace | 315 | define xbacktrace |
| 316 | set $bt = backtrace_list | 316 | set $bt = backtrace_list |
| 317 | while $bt | 317 | while $bt |
| 318 | xprintsym *$bt->function | 318 | set $type = (enum Lisp_Type) ((*$bt->function >> gdb_valbits) & 0x7) |
| 319 | if $type == Lisp_Symbol | ||
| 320 | xprintsym *$bt->function | ||
| 321 | else | ||
| 322 | printf "0x%x ", *$bt->function | ||
| 323 | if $type == Lisp_Vectorlike | ||
| 324 | set $size = ((struct Lisp_Vector *) ((*$bt->function & $valmask) | gdb_data_seg_bits))->size | ||
| 325 | output (enum pvec_type) (($size & PVEC_FLAG) ? $size & PVEC_TYPE_MASK : 0) | ||
| 326 | else | ||
| 327 | printf "Lisp type %d", $type | ||
| 328 | end | ||
| 329 | echo \n | ||
| 330 | end | ||
| 319 | set $bt = $bt->next | 331 | set $bt = $bt->next |
| 320 | end | 332 | end |
| 321 | end | 333 | end |
| 322 | document xbacktrace | 334 | document xbacktrace |
| 323 | Print a backtrace of Lisp function calls from backtrace_list. | 335 | Print a backtrace of Lisp function calls from backtrace_list. |
| 324 | Set a breakpoint at Fsignal and call this to see from where | 336 | Set a breakpoint at Fsignal and call this to see from where |
| 325 | an error was signalled. | 337 | an error was signaled. |
| 326 | end | 338 | end |
| 327 | 339 | ||
| 328 | define xreload | 340 | define xreload |