changeset 112085:19ad0830069c

* src/.gdbinit (xgetptr): Fix the union+lsb case. (xbacktrace): Fix the union case.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Mon, 27 Dec 2010 10:27:52 -0500
parents 47eeace758ba
children f5d1f4fc8c14
files src/.gdbinit src/ChangeLog
diffstat 2 files changed, 9 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/.gdbinit	Mon Dec 27 20:04:17 2010 +0900
+++ b/src/.gdbinit	Mon Dec 27 10:27:52 2010 -0500
@@ -1,5 +1,5 @@
 # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2000, 2001,
-#   2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
+#   2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
 #   Free Software Foundation, Inc.
 #
 # This file is part of GNU Emacs.
@@ -49,7 +49,7 @@
 # Using a constant runs into GDB bugs sometimes.
 define xgetptr
   set $bugfix = $arg0
-  set $ptr = (gdb_use_union ? $bugfix.u.val : $bugfix & $valmask) | gdb_data_seg_bits
+  set $ptr = (gdb_use_union ? (gdb_use_lsb ? $bugfix.u.val << gdb_gctypebits : $bugfix.u.val) : $bugfix & $valmask) | gdb_data_seg_bits
 end
 
 define xgetint
@@ -1130,7 +1130,8 @@
       xprintsym (*$bt->function)
       printf " (0x%x)\n", $bt->args
     else
-      printf "0x%x ", *$bt->function
+      xgetptr *$bt->function
+      printf "0x%x ", $ptr
       if $type == Lisp_Vectorlike
 	xgetptr (*$bt->function)
         set $size = ((struct Lisp_Vector *) $ptr)->size
--- a/src/ChangeLog	Mon Dec 27 20:04:17 2010 +0900
+++ b/src/ChangeLog	Mon Dec 27 10:27:52 2010 -0500
@@ -1,3 +1,8 @@
+2010-12-27  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* .gdbinit (xgetptr): Fix the union+lsb case.
+	(xbacktrace): Fix the union case.
+
 2010-12-26  Stefan Monnier  <monnier@iro.umontreal.ca>
 
 	* window.c (Fmove_to_window_line): Avoid abort when called in a buffer