diff options
| author | Eli Zaretskii | 2016-10-12 11:59:53 +0300 |
|---|---|---|
| committer | Eli Zaretskii | 2016-10-12 11:59:53 +0300 |
| commit | 27eb668ac34eb3899985718c6879dc11e916d382 (patch) | |
| tree | 7e010c9713329a6ad5424b1d8ee2e44fa5d4265d | |
| parent | dac64e35ddd203be2b841e65cf16e11ce9b1be6a (diff) | |
| download | emacs-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.gdb | 36 | ||||
| -rw-r--r-- | src/.gdbinit | 3 |
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. |
| 74 | set main | 74 | set $dummy = main + 8 |
| 75 | # With some compilers, we need this to give us struct Lisp_Symbol etc.: | ||
| 76 | set $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 |
| 77 | set $yverbose = 1 | 79 | set $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 |
| 83 | end | 85 | end |
| 84 | 86 | ||
| 87 | # Get the value of Qnil for comparison. Needed when | ||
| 88 | # CHECK_LISP_OBJECT_TYPE is non-zero. | ||
| 89 | ygetptr Qnil | ||
| 90 | set $qnil = $ptr | ||
| 91 | |||
| 85 | define ybuffer-list | 92 | define 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 | |||
| 1267 | tbreak init_sys_modes | 1267 | tbreak init_sys_modes |
| 1268 | commands | 1268 | commands |
| 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 |