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 | 3176a27e6360ead42d67062ffa17dcf137dfc82f (patch) | |
tree | 503245b646f620b59ad81d6fa828194024d81b7d /src/.gdbinit | |
parent | 2bd8a1db5ef40ae3bde8085779fd2d9014403343 (diff) | |
download | emacs-3176a27e6360ead42d67062ffa17dcf137dfc82f.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 |