Mercurial > hg > xemacs-beta
diff etc/gdbinit.in @ 4643:e9ccbc62f7e7
Don't rely on GDB understanding the Lisp_Type_{Record,Char} enums, gdbinit.in
2009-06-14 Aidan Kehoe <kehoea@parhasard.net>
* gdbinit.in:
Supply variables for the Lisp_Type_Record, Lisp_Type_Char
type information, for the sake of various versions of GDB that
can't take them from the enum vals in the executable. Use those
variables instead of the enums.
author | Aidan Kehoe <kehoea@parhasard.net> |
---|---|
date | Sun, 14 Jun 2009 16:08:22 +0100 |
parents | 8453b9b6286f |
children | 7ef913bf3c9a |
line wrap: on
line diff
--- a/etc/gdbinit.in Sun Jun 14 15:07:13 2009 +0100 +++ b/etc/gdbinit.in Sun Jun 14 16:08:22 2009 +0100 @@ -71,6 +71,8 @@ #endif set $Lisp_Type_Int = -2 +set $Lisp_Type_Record = 0 +set $Lisp_Type_Char = 2 define decode_object set $obj = (unsigned long) $arg0 @@ -80,7 +82,7 @@ set $type = $Lisp_Type_Int else set $type = $obj & dbg_typemask - if $type == Lisp_Type_Char + if $type == $Lisp_Type_Char set $val = ($obj & dbg_valmask) >> dbg_gctypebits else ## It's a record pointer @@ -88,7 +90,7 @@ end end - if $type == Lisp_Type_Record + if $type == $Lisp_Type_Record set $lheader = ((struct lrecord_header *) $val) set $lrecord_type = ($lheader->type) set $imp = ((struct lrecord_implementation *) lrecord_implementations_table[(int) $lrecord_type]) @@ -115,7 +117,7 @@ if $type == $Lisp_Type_Int echo int\n else - if $type == Lisp_Type_Char + if $type == $Lisp_Type_Char echo char\n else printf "record type: %s\n", $imp->name @@ -264,7 +266,7 @@ if $type == $Lisp_Type_Int printf "Integer: %d\n", $val else - if $type == Lisp_Type_Char + if $type == $Lisp_Type_Char if $val > 32 && $val < 128 printf "Char: %c\n", $val else