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

From: Matthieu Moy <[email-masked]>
Date: Fri, 28 Aug 2009 13:55:55 +0200

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)))()

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