summaryrefslogtreecommitdiff
path: root/src/.gdbinit
diff options
context:
space:
mode:
authorGerd Moellmann <gerd@gnu.org>2000-10-24 10:55:57 +0000
committerGerd Moellmann <gerd@gnu.org>2000-10-24 10:55:57 +0000
commit552199c3f044d67453444b6c286baf51a73e5b8a (patch)
treec51581a2ae916a62863e588004ba5c9c6e131362 /src/.gdbinit
parentbaa8dd04d5281793b47f09810b585c7bc9dfe018 (diff)
downloademacs-552199c3f044d67453444b6c286baf51a73e5b8a.tar.gz
(xbacktrace): Handle case that $bt->function isn't
a symbol.
Diffstat (limited to 'src/.gdbinit')
-rw-r--r--src/.gdbinit16
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