aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEli Zaretskii2016-10-12 11:59:53 +0300
committerEli Zaretskii2016-10-12 11:59:53 +0300
commit27eb668ac34eb3899985718c6879dc11e916d382 (patch)
tree7e010c9713329a6ad5424b1d8ee2e44fa5d4265d
parentdac64e35ddd203be2b841e65cf16e11ce9b1be6a (diff)
downloademacs-27eb668ac34eb3899985718c6879dc11e916d382.tar.gz
emacs-27eb668ac34eb3899985718c6879dc11e916d382.zip
Adapt GDB scripts to '--enable-check-lisp-object-type' builds
* etc/emacs-buffer.gdb <$qnil>: New variable. (ybuffer-list, yset-buffer): Use $qnil for comparing against 'nil', as direct comparison with Qnil doesn't work in a build with '--enable-check-lisp-object-type'. * src/.gdbinit: Adapt commands of the temporary breakpoint in init_sys_modes to a build with '--enable-check-lisp-object-type'.
-rw-r--r--etc/emacs-buffer.gdb36
-rw-r--r--src/.gdbinit3
2 files changed, 26 insertions, 13 deletions
diff --git a/etc/emacs-buffer.gdb b/etc/emacs-buffer.gdb
index 26c13c1b706..d51e7ad8a80 100644
--- a/etc/emacs-buffer.gdb
+++ b/etc/emacs-buffer.gdb
@@ -70,8 +70,10 @@
70 70
71# Code: 71# Code:
72 72
73# Force loading of symbols, enough to give us VALMASK etc. 73# Force loading of symbols, enough to give us VALBITS etc.
74set main 74set $dummy = main + 8
75# With some compilers, we need this to give us struct Lisp_Symbol etc.:
76set $dummy = Fmake_symbol + 8
75 77
76# When nonzero, display some extra diagnostics in various commands 78# When nonzero, display some extra diagnostics in various commands
77set $yverbose = 1 79set $yverbose = 1
@@ -82,6 +84,11 @@ define ygetptr
82 set $ptr = (CHECK_LISP_OBJECT_TYPE ? $ptr.i : $ptr) & VALMASK 84 set $ptr = (CHECK_LISP_OBJECT_TYPE ? $ptr.i : $ptr) & VALMASK
83end 85end
84 86
87# Get the value of Qnil for comparison. Needed when
88# CHECK_LISP_OBJECT_TYPE is non-zero.
89ygetptr Qnil
90set $qnil = $ptr
91
85define ybuffer-list 92define ybuffer-list
86 set $files_only = $yfile_buffers_only 93 set $files_only = $yfile_buffers_only
87 set $yfile_buffers_only = 0 94 set $yfile_buffers_only = 0
@@ -93,10 +100,13 @@ define ybuffer-list
93 100
94 set $i = 0 101 set $i = 0
95 set $alist = Vbuffer_alist 102 set $alist = Vbuffer_alist
96 while $alist != Qnil 103 ygetptr $alist
97 ygetptr $alist 104 set $alist = $ptr
105 while $alist != $qnil
98 set $this = ((struct Lisp_Cons *) $ptr)->car 106 set $this = ((struct Lisp_Cons *) $ptr)->car
99 set $alist = ((struct Lisp_Cons *) $ptr)->u.cdr 107 set $alist = ((struct Lisp_Cons *) $ptr)->u.cdr
108 ygetptr $alist
109 set $alist = $ptr
100 110
101 # Vbuffer_alist elts are pairs of the form (name . buffer) 111 # Vbuffer_alist elts are pairs of the form (name . buffer)
102 ygetptr $this 112 ygetptr $this
@@ -104,7 +114,9 @@ define ybuffer-list
104 ygetptr $buf 114 ygetptr $buf
105 set $buf = (struct buffer *) $ptr 115 set $buf = (struct buffer *) $ptr
106 116
107 if ! ($files_only && $buf->filename_ == Qnil) 117 ygetptr $buf->filename_
118 set $fname = $ptr
119 if ! ($files_only && $fname == $qnil)
108 ygetptr $buf->name_ 120 ygetptr $buf->name_
109 set $name = ((struct Lisp_String *) $ptr)->data 121 set $name = ((struct Lisp_String *) $ptr)->data
110 set $modp = ($buf->text->modiff > $buf->text->save_modiff) ? '*' : ' ' 122 set $modp = ($buf->text->modiff > $buf->text->save_modiff) ? '*' : ' '
@@ -112,11 +124,11 @@ define ybuffer-list
112 ygetptr $buf->mode_name_ 124 ygetptr $buf->mode_name_
113 set $mode = ((struct Lisp_String *) $ptr)->data 125 set $mode = ((struct Lisp_String *) $ptr)->data
114 126
115 if $buf->filename_ != Qnil 127 if $fname != $qnil
116 ygetptr $buf->filename_ 128 ygetptr $buf->filename_
117 printf "%2d %c %9d %-20s %-10s %s\n", \ 129 printf "%2d %c %9d %-20s %-10s %s\n", \
118 $i, $modp, ($buf->text->z_byte - 1), $name, $mode, \ 130 $i, $modp, ($buf->text->z_byte - 1), $name, $mode, \
119 ((struct Lisp_String *) $ptr)->data 131 ((struct Lisp_String *) $fname)->data
120 else 132 else
121 printf "%2d %c %9d %-20s %-10s\n", \ 133 printf "%2d %c %9d %-20s %-10s\n", \
122 $i, $modp, ($buf->text->z_byte - 1), $name, $mode 134 $i, $modp, ($buf->text->z_byte - 1), $name, $mode
@@ -146,15 +158,17 @@ define yset-buffer
146 set $i = $arg0 158 set $i = $arg0
147 159
148 set $alist = Vbuffer_alist 160 set $alist = Vbuffer_alist
149 while ($alist != Qnil && $i > 0) 161 ygetptr $alist
150 ygetptr $alist 162 set $alist = $ptr
163 while ($alist != $qnil && $i > 0)
151 set $alist = ((struct Lisp_Cons *) $ptr)->u.cdr 164 set $alist = ((struct Lisp_Cons *) $ptr)->u.cdr
165 ygetptr $alist
166 set $alist = $ptr
152 set $i-- 167 set $i--
153 end 168 end
154 169
155 # Get car of alist; this is a pair (name . buffer) 170 # Get car of alist; this is a pair (name . buffer)
156 ygetptr $alist 171 set $this = ((struct Lisp_Cons *) $alist)->car
157 set $this = ((struct Lisp_Cons *) $ptr)->car
158 172
159 # Get the buffer object 173 # Get the buffer object
160 ygetptr $this 174 ygetptr $this
diff --git a/src/.gdbinit b/src/.gdbinit
index a4e9f709386..9160ffa439e 100644
--- a/src/.gdbinit
+++ b/src/.gdbinit
@@ -1267,8 +1267,7 @@ break terminate_due_to_signal
1267tbreak init_sys_modes 1267tbreak init_sys_modes
1268commands 1268commands
1269 silent 1269 silent
1270 xgetptr globals.f_Vinitial_window_system 1270 xsymname globals.f_Vinitial_window_system
1271 xsymname $ptr
1272 xgetptr $symname 1271 xgetptr $symname
1273 set $tem = (struct Lisp_String *) $ptr 1272 set $tem = (struct Lisp_String *) $ptr
1274 set $tem = (char *) $tem->data 1273 set $tem = (char *) $tem->data