Subject: bug#9858: 24.0.90; M-x gdb breaks if gdb-show-main is non-nil but there's no file loaded

From: Ken Brown <[email-masked]>
Date: Mon, 24 Oct 2011 12:10:04 -0400

The info node GDB Graphical Interface File > GDB User Interface Layout 
suggests setting the (customizable) variable gdb-show-main non-nil in 
order to have the source buffer displayed on startup of M-x gdb.  But if 
you do this and then run M-x gdb without specifying a file to debug, M-x 
gdb doesn't initialize properly, and the *Messages* buffer contains

error in process filter: gud-find-file: Wrong type argument: stringp, nil

I think M-x gdb should just start up normally in this situation, perhaps 
with a message that there's no source file.

To reproduce:

emacs -Q
M-: (setq gdb-show-main t) <ret>
M-x gdb <delete any file name in the prompt> <return>

In GNU Emacs 24.0.90.2 (x86_64-unknown-linux-gnu, GTK+ Version 2.22.0)
  of 2011-10-24 on moufangfedora
Windowing system distributor `Fedora Project', version 11.0.10905000
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: nil
   value of $XMODIFIERS: @im=none
   locale-coding-system: nil
   default enable-multibyte-characters: t

Major mode: Fundamental

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

Recent input:
M-x s e t - v a <tab> <return> g d b - s h o w - m
a i n <return> C-g M-: ( s e t q SPC g d b - s h o
w - m a i n SPC t ) <return> M-x g d b <return> <M-backspace>
<M-backspace> <return> C-x b * M <tab> <return> M-x
r e p o r <tab> <return>

Recent messages:
For information about GNU Emacs and the GNU system, type C-h C-a.
Quit
t
error in process filter: gud-find-file: Wrong type argument: stringp, nil
error in process filter: Wrong type argument: stringp, nil

Load-path shadows:
None found.

Features:
(shadow sort gnus-util mail-extr message format-spec rfc822 mml easymenu
mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045
ietf-drums mm-util mail-prsvr mailabbrev mail-utils gmm-utils mailheader
emacsbug gdb-mi bindat json gud easy-mmode comint regexp-opt ring
help-fns time-date tooltip ediff-hook vc-hooks lisp-float-type mwheel
x-win x-dnd tool-bar dnd fontset image fringe lisp-mode register page
menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock font-lock
syntax facemenu font-core frame cham georgian utf-8-lang misc-lang
vietnamese tibetan thai tai-viet lao korean japanese hebrew greek
romanian slovak czech european ethiopic indian cyrillic chinese
case-table epa-hook jka-cmpr-hook help simple abbrev minibuffer loaddefs
button faces cus-face files text-properties overlay sha1 md5 base64
format env code-pages mule custom widget hashtable-print-readable
backquote make-network-process dbusbind dynamic-setting
system-font-setting font-render-setting move-toolbar gtk x-toolkit x
multi-tty emacs)