Subject: bug#5077: 23.1.50; gdb-mi prompt weirdness

From: Michael Welsh Duggan <[email-masked]>
Date: Sun, 29 Nov 2009 23:25:01 -0500

Please describe exactly what actions triggered the bug
and the precise symptoms of the bug.  If you can, give
a recipe starting from `emacs -Q':

Compile the following program using:
g++ -g -o foo foo.cpp

class A {
protected:
    int c(void) const { return 1;}
    int d(void) const { return 2;}
};

class B : private A {
public:
    using A::c;
};

int main()
{
    B b;

    int x;

    x = b.c();
    // x = b.d();
    // A &a = b;
    // x = a.d();

    return 0;
}

In an emacs, start gdb using something similar to:
M-x gdb RET gdb -i=mi bar RET

Then use the following gdb session:
start
b
run

In my output, I end up in a state without a (gdb) prompt.  Here is an
example of my output:

Current directory is /usr/local/home/md5i/
GNU gdb (GDB) 7.0-debian
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i486-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/local/home/md5i/bar...done.
(gdb) start
Temporary breakpoint 1 at 0x80483a5: file bar.c, line 2.
Starting program: /usr/local/home/md5i/bar 
(gdb) b
Breakpoint 2 at 0x80483a5: file bar.c, line 2.
(gdb) run
Starting program: /usr/local/home/md5i/bar 

At this point I can type in gdb commands, but there is no visible
prompt.  I have been able to trigger this occurance in a number of
debugging situations, and it can often be confusing, as no prompt to me
generally means that the program is still running.

In GNU Emacs 23.1.50.1 (i686-pc-linux-gnu, GTK+ Version 2.18.3)
 of 2009-11-27 on maru
Windowing system distributor `The X.Org Foundation', version 11.0.10605000
configured using `configure  '--without-toolkit-scroll-bars''

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.utf8
  value of $XMODIFIERS: nil
  locale-coding-system: utf-8-unix
  default enable-multibyte-characters: t

Major mode: Summary

Minor modes in effect:
  display-time-mode: t
  diff-auto-refine-mode: t
  shell-dirtrack-mode: t
  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
  global-auto-composition-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t

Recent input:
C-n C-n C-n C-p < # / p a r t > M-v C-p C-p C-p C-p 
C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p 
C-p C-p C-p C-p C-p C-p C-p C-n C-n C-n C-n C-n C-n 
C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n 
C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n 
C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n 
C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n 
C-n C-n <return> H e r e SPC i s SPC t h e SPC g d 
b - d e b u g - l o g SPC f o r SPC t h i s SPC s e 
s s i o n : <return> <return> < # p a r t <backspace> 
<backspace> <backspace> <backspace> <backspace> <backspace> 
C-y <return> < # / p a r t > M-v M-v M-v M-v M-v M-v 
M-v M-v C-p C-p C-p C-p C-p C-p C-p C-p C-p C-a C-n 
C-SPC C-n M-w C-v C-v M-v C-p C-p C-p C-p C-p C-p C-p 
C-p C-p C-p C-p C-p C-p C-p C-n C-n C-n C-n C-n C-n 
C-n C-n C-y M-v C-v C-v C-v C-v M-v M-v M-v C-v C-v 
C-v C-v C-v C-v C-v C-v M-v M-v C-n C-n C-n C-n C-n 
C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n 
C-n C-n C-SPC C-n C-n C-n C-n C-n C-n C-n C-n C-w C-v 
C-v C-v M-v M-v M-v M-v M-v M-v M-v M-v <escape> < 
C-n C-n C-n C-n C-n C-n C-n C-n C-n <return> C-_ C-c 
C-c <help-echo> M-x r e p o r t - e m <tab> <retur
n>

Recent messages:
Reading active file from localimap via nnimap...
nnimap: Checking mailboxes...done
Reading active file from archive via nnfolder...done
Checking new news...done
Undo!
Sending...
Sending via mail...
nnimap: Updating info for nnimap+localimap:archive.mail...done
Sending...done
Deleting article /home/md5i/News/drafts/drafts/3 in drafts...

Load-path shadows:
/usr/local/share/emacs/site-lisp/lilypond-words hides /usr/share/emacs/site-lisp/lilypond-words
/usr/local/share/emacs/site-lisp/lilypond-indent hides /usr/share/emacs/site-lisp/lilypond-indent
/usr/local/share/emacs/site-lisp/lilypond-mode hides /usr/share/emacs/site-lisp/lilypond-mode
/home/md5i/src/elisp/psvn hides /usr/share/emacs/site-lisp/psvn
/usr/local/share/emacs/site-lisp/lilypond-song hides /usr/share/emacs/site-lisp/lilypond-song
/usr/local/share/emacs/site-lisp/lilypond-what-beat hides /usr/share/emacs/site-lisp/lilypond-what-beat
/usr/local/share/emacs/site-lisp/lilypond-font-lock hides /usr/share/emacs/site-lisp/lilypond-font-lock
/usr/local/share/emacs/site-lisp/lilypond-init hides /usr/share/emacs/site-lisp/lilypond-init

Features:
(shadow ispell emacsbug newcomment speedbar sb-image ezimage dframe
gdb-mi warnings bindat json gud dabbrev jka-compr find-func grep
lilypond-mode scheme etags vc-git cc-mode cc-fonts cc-menus cc-cmds
cc-styles cc-align cc-engine cc-vars cc-defs multi-isearch mule-util
vc-dispatcher vc-svn gnus-cite ansi-color flow-fill gnus-async
gnus-bcklg parse-time sort byte-opt bytecomp byte-compile gnus-ml
disp-table gnus-topic nnfolder utf-7 utf7 rfc2104 nnimap nndraft nnmh
bbdb-gnus bbdb-snarf mail-extr bbdb-com nnml gnus-agent gnus-srvr
gnus-score score-mode nnvirtual gnus-msg gnus-art mm-uu mml2015 mm-view
smime dig gnus-cache edmacro kmacro gnus-demon nntp nnir gnus-sum
gnus-group gnus-undo nnmail mail-source nnoo gnus-start gnus-spec
gnus-int gnus-range gnus-win gnus gnus-ems server uptimes pp uniquify
descr-text help-mode view tramp-imap epa epg epg-config imap-hash imap
assoc tramp-gw tramp-fish tramp-smb tramp-cache tramp-ftp tramp-cmds
tramp auth-source format-spec tramp-compat trampver time rng-loc rng-uri
rng-parse rng-match rng-dt rng-util rng-pttrn nxml-parse nxml-ns
nxml-enc xmltok nxml-util sgml-mode psvn log-edit pcvs-util add-log
diff-mode easy-mmode inf-caml camldebug thingatpt derived shell
caml-types caml-emacs caml-font caml advice help-fns advice-preload
compile imenu message sendmail ecomplete rfc822 mml easymenu mml-sec
password-cache mm-decode mm-bodies mm-encode mailcap mail-parse rfc2231
rfc2047 rfc2045 qp ietf-drums mailabbrev nnheader gnus-util netrc
time-date mm-util mail-prsvr gmm-utils wid-edit mailheader canlock sha1
hex-util hashcash mail-utils generic-x debian-el debian-el-loaddefs
dired-x dired-aux dired bbdb-autoloads bbdb timezone ange-ftp regexp-opt
comint ring cl cl-19 tooltip ediff-hook vc-hooks lisp-float-type mwheel
x-win x-dnd font-setting tool-bar dnd fontset image fringe lisp-mode
register page menu-bar rfn-eshadow timer select scroll-bar mldrag 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
loaddefs button minibuffer faces cus-face text-properties overlay md5
base64 format env code-pages mule custom widget hashtable-print-readable
backquote make-network-process dbusbind system-font-setting
font-render-setting gtk x-toolkit x multi-tty emacs)

-- 
Michael Welsh Duggan
([email-masked])