diff options
author | Gerd Moellmann <gerd@gnu.org> | 2000-10-24 10:55:57 +0000 |
---|---|---|
committer | Gerd Moellmann <gerd@gnu.org> | 2000-10-24 10:55:57 +0000 |
commit | 552199c3f044d67453444b6c286baf51a73e5b8a (patch) | |
tree | c51581a2ae916a62863e588004ba5c9c6e131362 /src/.gdbinit | |
parent | baa8dd04d5281793b47f09810b585c7bc9dfe018 (diff) | |
download | emacs-552199c3f044d67453444b6c286baf51a73e5b8a.tar.gz |
(xbacktrace): Handle case that $bt->function isn't
a symbol.
Diffstat (limited to 'src/.gdbinit')
-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 define xbacktrace set $bt = backtrace_list while $bt - xprintsym *$bt->function + set $type = (enum Lisp_Type) ((*$bt->function >> gdb_valbits) & 0x7) + if $type == Lisp_Symbol + xprintsym *$bt->function + else + printf "0x%x ", *$bt->function + if $type == Lisp_Vectorlike + set $size = ((struct Lisp_Vector *) ((*$bt->function & $valmask) | gdb_data_seg_bits))->size + output (enum pvec_type) (($size & PVEC_FLAG) ? $size & PVEC_TYPE_MASK : 0) + else + printf "Lisp type %d", $type + end + echo \n + end set $bt = $bt->next end end document xbacktrace Print a backtrace of Lisp function calls from backtrace_list. Set a breakpoint at Fsignal and call this to see from where - an error was signalled. + an error was signaled. end define xreload |