aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Eggert2012-02-20 16:07:53 -0800
committerPaul Eggert2012-02-20 16:07:53 -0800
commitcb3a28cc909e79244a477dcc357e38da658a8992 (patch)
treef782cc1941a9aa4fde43789f81ec0ba00b9ad3c4
parent2d2f6581283113ad4c806e7f176724e7d3013172 (diff)
downloademacs-cb3a28cc909e79244a477dcc357e38da658a8992.tar.gz
emacs-cb3a28cc909e79244a477dcc357e38da658a8992.zip
In GDB scripts, don't assume that EMACS_INT fits in long.
* etc/emacs-buffer.gdb ($valmask): Don't assume EMACS_INT fits in 'long'. * src/.gdbinit (xreload): Likewise.
-rw-r--r--etc/ChangeLog4
-rw-r--r--etc/emacs-buffer.gdb4
-rw-r--r--src/.gdbinit4
-rw-r--r--src/ChangeLog3
4 files changed, 13 insertions, 2 deletions
diff --git a/etc/ChangeLog b/etc/ChangeLog
index 1f1190b19d9..7e71eca54b9 100644
--- a/etc/ChangeLog
+++ b/etc/ChangeLog
@@ -1,3 +1,7 @@
12012-02-20 Paul Eggert <eggert@cs.ucla.edu>
2
3 * emacs-buffer.gdb ($valmask): Don't assume EMACS_INT fits in 'long'.
4
12012-02-10 Leo Liu <sdl.web@gmail.com> 52012-02-10 Leo Liu <sdl.web@gmail.com>
2 6
3 * NEWS: Change condition-case-no-debug to 7 * NEWS: Change condition-case-no-debug to
diff --git a/etc/emacs-buffer.gdb b/etc/emacs-buffer.gdb
index 2bd2fa23794..80f69c585dc 100644
--- a/etc/emacs-buffer.gdb
+++ b/etc/emacs-buffer.gdb
@@ -78,7 +78,9 @@ set $yverbose = 1
78set $yfile_buffers_only = 0 78set $yfile_buffers_only = 0
79 79
80set $tagmask = (((long)1 << gdb_gctypebits) - 1) 80set $tagmask = (((long)1 << gdb_gctypebits) - 1)
81set $valmask = gdb_use_lsb ? ~($tagmask) : ((long)1 << gdb_valbits) - 1 81# The consing_since_gc business widens the 1 to EMACS_INT,
82# a symbol not directly visible to GDB.
83set $valmask = gdb_use_lsb ? ~($tagmask) : ((consing_since_gc - consing_since_gc + 1) << gdb_valbits) - 1
82 84
83define ygetptr 85define ygetptr
84 set $ptr = $arg0 86 set $ptr = $arg0
diff --git a/src/.gdbinit b/src/.gdbinit
index 74dbd7a4197..7cd828733b1 100644
--- a/src/.gdbinit
+++ b/src/.gdbinit
@@ -1259,7 +1259,9 @@ end
1259 1259
1260define xreload 1260define xreload
1261 set $tagmask = (((long)1 << gdb_gctypebits) - 1) 1261 set $tagmask = (((long)1 << gdb_gctypebits) - 1)
1262 set $valmask = gdb_use_lsb ? ~($tagmask) : ((long)1 << gdb_valbits) - 1 1262 # The consing_since_gc business widens the 1 to EMACS_INT,
1263 # a symbol not directly visible to GDB.
1264 set $valmask = gdb_use_lsb ? ~($tagmask) : ((consing_since_gc - consing_since_gc + 1) << gdb_valbits) - 1
1263end 1265end
1264document xreload 1266document xreload
1265 When starting Emacs a second time in the same gdb session under 1267 When starting Emacs a second time in the same gdb session under
diff --git a/src/ChangeLog b/src/ChangeLog
index 911799b2bd2..bd376e9b855 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,5 +1,8 @@
12012-02-20 Paul Eggert <eggert@cs.ucla.edu> 12012-02-20 Paul Eggert <eggert@cs.ucla.edu>
2 2
3 * .gdbinit (xreload): Don't assume EMACS_INT fits in 'long'
4 when computing $valmask.
5
3 Fix crash due to non-contiguous EMACS_INT (Bug#10780). 6 Fix crash due to non-contiguous EMACS_INT (Bug#10780).
4 * lisp.h (VALBITS): Move definition up, so that USE_LSB_TAG can use it. 7 * lisp.h (VALBITS): Move definition up, so that USE_LSB_TAG can use it.
5 (USE_LSB_TAG): Do not define if UINTPTR_MAX >> VALBITS == 0. 8 (USE_LSB_TAG): Do not define if UINTPTR_MAX >> VALBITS == 0.