bug#4282: 23.1.50; gdb-mi.el: (wrong-type-argument stringp nil) when using watchpoints

Matthieu Moy <[email protected]>
Newsgroups gmane.emacs.bugs,gmane.emacs.pretest.bugs
Message-ID <[email protected]>
Hi,

I'm having trouble with gdb-mi and watchpoints (i.e. "watch" command at
the gdb prompt).

Steps to reproduce (I'm posting from an Emacs instance where I just
reproduced this):

$ cat main.c 
int main () {
	int i;
	i++;
	i++;
}
$ gcc main.c -g
$ emacs -Q main.c

Then, within Emacs:

* Launch M-x gdb RET once.
* Quit this first *gud* buffer (C-x k)
* Launch M-x gdb RET once more (yes, that's strange, but it doesn't
  crash in the first instance, only in the next one!)
* M-x toggle-debug-on-error RET
* In the *gud-a.out* buffer:

(gdb) b main
Breakpoint 1 at 0x8048335: file main.c, line 3.
(gdb) r
Starting program: /tmp/a.out 

Breakpoint 1, main () at main.c:3
3		i++;
(gdb) watch i
Hardware watchpoint 2: i

Then, I get this backtrace (and it keeps giving the same error for
anything done in this *gud* buffer afterwards):

Debugger entered--Lisp error: (wrong-type-argument stringp nil)
  propertize(nil font-lock-face font-lock-function-name-face)
  gdb-breakpoints-list-handler-custom()
  gdb-breakpoints-list-handler()
  apply(gdb-breakpoints-list-handler nil)
  (save-current-buffer (set-buffer #<buffer *breakpoints of a.out*>) (apply (quote gdb-breakpoints-list-handler) args))
  (with-current-buffer #<buffer *breakpoints of a.out*> (apply (quote gdb-breakpoints-list-handler) args))
  (lambda (&rest args) (with-current-buffer #<buffer *breakpoints of a.out*> (apply ... args)))()
  gdb-done-or-error("BreakpointTable={nr_rows=\"2\",nr_cols=\"6\",hdr=[{width=\"7\",alignment=\"-1\",col_name=\"number\",colhdr=\"Num\"},{width=\"14\",alignment=\"-1\",col_name=\"type\",colhdr=\"Type\"},{width=\"4\",alignment=\"-1\",col_name=\"disp\",colhdr=\"Disp\"},{width=\"3\",alignment=\"-1\",col_name=\"enabled\",colhdr=\"Enb\"},{width=\"10\",alignment=\"-1\",col_name=\"addr\",colhdr=\"Address\"},{width=\"40\",alignment=\"2\",col_name=\"what\",colhdr=\"What\"}],body=[bkpt={number=\"1\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"0x08048335\",func=\"main\",file=\"main.c\",fullname=\"/tmp/main.c\",line=\"3\",times=\"1\"},bkpt={number=\"2\",type=\"hw watchpoint\",disp=\"keep\",enabled=\"y\",addr=\"\",what=\"i\",times=\"0\"}]}" "18" done)
  gud-gdbmi-marker-filter("17^error,msg=\"Undefined mi command: thread-info (missing implementation)\"\n(gdb) \n18^done,BreakpointTable={nr_rows=\"2\",nr_cols=\"6\",hdr=[{width=\"7\",alignment=\"-1\",col_name=\"number\",colhdr=\"Num\"},{width=\"14\",alignment=\"-1\",col_name=\"type\",colhdr=\"Type\"},{width=\"4\",alignment=\"-1\",col_name=\"disp\",colhdr=\"Disp\"},{width=\"3\",alignment=\"-1\",col_name=\"enabled\",colhdr=\"Enb\"},{width=\"10\",alignment=\"-1\",col_name=\"addr\",colhdr=\"Address\"},{width=\"40\",alignment=\"2\",col_name=\"what\",colhdr=\"What\"}],body=[bkpt={number=\"1\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"0x08048335\",func=\"main\",file=\"main.c\",fullname=\"/tmp/main.c\",line=\"3\",times=\"1\"},bkpt={number=\"2\",type=\"hw watchpoint\",disp=\"keep\",ena
 bled=\"y\",addr=\"\",what=\"i\",times=\"0\"}]}\n(gdb) \n19^done,frame={level=\"0\",addr=\"0x08048335\",func=\"main\",file=\"main.c\",fullname=\"/tmp/main.c\",line=\"3\"}\n(gdb) \n")
  apply(gud-gdbmi-marker-filter "17^error,msg=\"Undefined mi command: thread-info (missing implementation)\"\n(gdb) \n18^done,BreakpointTable={nr_rows=\"2\",nr_cols=\"6\",hdr=[{width=\"7\",alignment=\"-1\",col_name=\"number\",colhdr=\"Num\"},{width=\"14\",alignment=\"-1\",col_name=\"type\",colhdr=\"Type\"},{width=\"4\",alignment=\"-1\",col_name=\"disp\",colhdr=\"Disp\"},{width=\"3\",alignment=\"-1\",col_name=\"enabled\",colhdr=\"Enb\"},{width=\"10\",alignment=\"-1\",col_name=\"addr\",colhdr=\"Address\"},{width=\"40\",alignment=\"2\",col_name=\"what\",colhdr=\"What\"}],body=[bkpt={number=\"1\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"0x08048335\",func=\"main\",file=\"main.c\",fullname=\"/tmp/main.c\",line=\"3\",times=\"1\"},bkpt={number=\"2\",type=\"hw watchpoint\",disp=\"keep
 \",enabled=\"y\",addr=\"\",what=\"i\",times=\"0\"}]}\n(gdb) \n19^done,frame={level=\"0\",addr=\"0x08048335\",func=\"main\",file=\"main.c\",fullname=\"/tmp/main.c\",line=\"3\"}\n(gdb) \n")
  gud-marker-filter("17^error,msg=\"Undefined mi command: thread-info (missing implementation)\"\n(gdb) \n18^done,BreakpointTable={nr_rows=\"2\",nr_cols=\"6\",hdr=[{width=\"7\",alignment=\"-1\",col_name=\"number\",colhdr=\"Num\"},{width=\"14\",alignment=\"-1\",col_name=\"type\",colhdr=\"Type\"},{width=\"4\",alignment=\"-1\",col_name=\"disp\",colhdr=\"Disp\"},{width=\"3\",alignment=\"-1\",col_name=\"enabled\",colhdr=\"Enb\"},{width=\"10\",alignment=\"-1\",col_name=\"addr\",colhdr=\"Address\"},{width=\"40\",alignment=\"2\",col_name=\"what\",colhdr=\"What\"}],body=[bkpt={number=\"1\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"0x08048335\",func=\"main\",file=\"main.c\",fullname=\"/tmp/main.c\",line=\"3\",times=\"1\"},bkpt={number=\"2\",type=\"hw watchpoint\",disp=\"keep\",enabled=\
 "y\",addr=\"\",what=\"i\",times=\"0\"}]}\n(gdb) \n19^done,frame={level=\"0\",addr=\"0x08048335\",func=\"main\",file=\"main.c\",fullname=\"/tmp/main.c\",line=\"3\"}\n(gdb) \n")
  gud-filter(#<process gud-a.out> "17^error,msg=\"Undefined mi command: thread-info (missing implementation)\"\n(gdb) \n18^done,BreakpointTable={nr_rows=\"2\",nr_cols=\"6\",hdr=[{width=\"7\",alignment=\"-1\",col_name=\"number\",colhdr=\"Num\"},{width=\"14\",alignment=\"-1\",col_name=\"type\",colhdr=\"Type\"},{width=\"4\",alignment=\"-1\",col_name=\"disp\",colhdr=\"Disp\"},{width=\"3\",alignment=\"-1\",col_name=\"enabled\",colhdr=\"Enb\"},{width=\"10\",alignment=\"-1\",col_name=\"addr\",colhdr=\"Address\"},{width=\"40\",alignment=\"2\",col_name=\"what\",colhdr=\"What\"}],body=[bkpt={number=\"1\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"0x08048335\",func=\"main\",file=\"main.c\",fullname=\"/tmp/main.c\",line=\"3\",times=\"1\"},bkpt={number=\"2\",type=\"hw watchpoint\",disp=\"ke
 ep\",enabled=\"y\",addr=\"\",what=\"i\",times=\"0\"}]}\n(gdb) \n19^done,frame={level=\"0\",addr=\"0x08048335\",func=\"main\",file=\"main.c\",fullname=\"/tmp/main.c\",line=\"3\"}\n(gdb) \n")


In GNU Emacs 23.1.50.2 (i686-pc-linux-gnu, GTK+ Version 2.8.20)
 of 2009-08-28 on bauges
Windowing system distributor `The X.Org Foundation', version 11.0.70101000
configured using `configure  '--prefix=/home/moy/local/usr/''

Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: nil
  value of $LC_CTYPE: nil
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: en_US.UTF-8
  value of $XMODIFIERS: nil
  locale-coding-system: utf-8-unix
  default-enable-multibyte-characters: t

Major mode: Debugger

Minor modes in effect:
  tooltip-mode: t
  tool-bar-mode: t
  mouse-wheel-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  global-auto-composition-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: (only . t)

Recent input:
M-x g d b <return> <return> C-x k <return> y e s <return> 
M-x g d b <return> <return> M-x t o g <tab> d e <tab> 
e <tab> <return> b SPC m a i n <return> r <return> 
w a t c h SPC i <return> <help-echo> M-x r e p o <tab> 
r <tab> <return>

Recent messages:
For information about GNU Emacs and the GNU system, type C-h C-a.
Loading vc-git...done
Debug on Error enabled globally
Entering debugger...
Making completion list...
call-interactively: Buffer is read-only: #<buffer *Backtrace*>

Load-path shadows:
None found.

-- 
Matthieu
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.