diff --git a/src/.gdbinit b/src/.gdbinit index 25b555b85400b09307ee09265db6f1996886bf5e..620ca63a0d6bf24f8ee6beb911e30e70a54d0a79 100644 --- a/src/.gdbinit +++ b/src/.gdbinit @@ -653,7 +653,11 @@ end define xvectype xgetptr $ set $size = ((struct Lisp_Vector *) $ptr)->header.size - output ($size & PSEUDOVECTOR_FLAG) ? (enum pvec_type) ($size & PVEC_TYPE_MASK) : $size & ~ARRAY_MARK_FLAG + if ($size & PSEUDOVECTOR_FLAG) + output (enum pvec_type) (($size & PVEC_TYPE_MASK) >> PSEUDOVECTOR_SIZE_BITS) + else + output $size & ~ARRAY_MARK_FLAG + end echo \n end document xvectype @@ -992,7 +996,7 @@ define xpr if $type == Lisp_Vectorlike set $size = ((struct Lisp_Vector *) $ptr)->header.size if ($size & PSEUDOVECTOR_FLAG) - set $vec = (enum pvec_type) ($size & PVEC_TYPE_MASK) + set $vec = (enum pvec_type) (($size & PVEC_TYPE_MASK) >> PSEUDOVECTOR_SIZE_BITS) if $vec == PVEC_NORMAL_VECTOR xvector end @@ -1127,7 +1131,11 @@ define xbacktrace if $type == Lisp_Vectorlike xgetptr (*$bt->function) set $size = ((struct Lisp_Vector *) $ptr)->header.size - output ($size & PSEUDOVECTOR_FLAG) ? (enum pvec_type) ($size & PVEC_TYPE_MASK) : $size & ~ARRAY_MARK_FLAG + if ($size & PSEUDOVECTOR_FLAG) + output (enum pvec_type) (($size & PVEC_TYPE_MASK) >> PSEUDOVECTOR_SIZE_BITS) + else + output $size & ~ARRAY_MARK_FLAG + end else printf "Lisp type %d", $type end diff --git a/src/ChangeLog b/src/ChangeLog index 392e25398dbbbfe78edb45f4dfada29625f168b6..42b92de5c26694af1fa916e01ad35af9e1e3d073 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,10 @@ +2012-07-27 Paul Eggert + + Adjust GDB to reflect pvec_type changes (Bug#12036). + * .gdbinit (xvectype, xpr, xbacktrace): Adjust to reflect the + 2012-07-04 changes to pseudovector representation. Problem + reported by Eli Zaretskii in . + 2012-07-27 Michael Albinus * dbusbind.c (XD_DBUS_VALIDATE_BUS_ADDRESS): Canonicalize session