Subject: bug#1155: 23.0.60; GUD hangs

From: Nick Roberts <[email-masked]>
Date: Tue, 14 Oct 2008 23:10:03 +1300

> BTW, and this drives me crazy, sometimes-it-work-and-sometimes-it-doesnt 
 > (tm). My suspicion is that the problem perhaps comes from the way emacs 
 > communicate with gdb : what if there are different instances of gdb 
 > running at the same time on the machine ? what if there are other 
 > emacsen ? what if those emacsen also happen to run gdbs ? Anyway, when 
 > it does not what I want, I switch to emacs 21, and this one works. 
 > Still, it is not satisfying :-)

Emacs communicates with GDB through a terminal (or a pipe) so it shouldn't
matter if there are different instances of gdb, or other emacsen.

 > > [email-masked] is an active mailing list and the right one for
 > > reporting bugs in Emacs 23.0.60.  Maybe there is something wrong with your
 > > mail server.
 > >   
 > I don't know: on http://ists.gnu.org/archive/html/emacs-pretest-bug , 
 > the last message is from july 2007, saying that the list is 
 > discontinued. But maybe I missed something.

I believe that emacs-pretest-bug is aliased to emacs-devel but if the
subject header starts with 23.0.60; it goes through Don Armstrong's bug
tracker.

 > >  > ...
 > >  > Recent input:
 > >  > M-x g d b <return> <backspace> <backspace> <backspace>
 > >  > <backspace> <backspace> <backspace> <backspace> <backspace>
 > >  > <backspace> <backspace> <backspace> <backspace> <backspace>
 > >  > <backspace> <return> h e l p <return> C-c C-c M-x r
 > >  > e p o r t - e m a c s - b u g <return>
 > >
 > > What text do you have in the mini-buffer when you type <return> for the
 > > second time?
 > >   
 > When I type "M-x gdb", the text by default in the minibuffer is  "Run 
 > gdb (like this): gdb --annotate=3 foo", where "foo" is a random 
 > executable file in my home directory. All the <backspace>s are to remove 
 > everything up to just "gdb" (the second one of course ; I do not modify 
 > the prompt)

You need to, at least, keep "gdb --annotate=3"

 > But hey ! that does seem to make a difference. In my home directory, I 
 > start emacs 23 with -Q and I type M-x gdb. The text by default is "gdb 
 > --annotate=3 .zshrc". If I just press return, I can ask for "help" and 
 > get gdb help. If I remove everything but "gdb", so as to choose my 
 > "file" and my "set args" later, it does not work.

It's unlikely that you want to debug .zshrc (Emacs just looks for the last
executable to be modified in default-directory) but it should look something
like:

"Run gdb (like this): gdb --annotate=3 myprog

when you press <RET> in the mini-buffer, where myprog is the name your
executable (use an absolute filename if you're not sure what directory you're
in).

 > Hoho (typing as I'm reading the web) : the online documentation of gdb 
 > (not the man page, not the info page, not the gdb --help) mention this 
 > option, and says :
 > 
 > http://sourceware.org/gdb/current/onlinedocs/gdb_3.html#IDX37

The node "GDB Graphical Interface" in the Emacs info manual is probably of more
interest to you.  If you have the tool bar present, which can be useful for
debugging, you can click on the Info button (bulb or question mark) to get to
this node from the GUD buffer.

 > ...
 > Now remains the questions as to why it does work like a charm in emacs 
 > 21 without this option, and also why the necessity of this option for 
 > gud is documented nowhere (if I, the end user, am not allowed to remove 
 > this option from the command line without breaking GUD, either I should 
 > not be allowed to remove it, or at least I should be warned.)

Emacs 21 used "--fullname" which is the same as "--annotate=1" but it was
hidden from the user.  So yes, people coming from Emacs 21 have a different
expectation and you have a point.  However, the user may want to change 
the pathname to GDB, for example.

C-h f gdb<RET>

says

  The option "--annotate=3" must be included in this value.  To
  run GDB in text command mode, use `gud-gdb'.  You need to use
  text command mode to debug multiple programs within one Emacs
  session.

at the end of the *Help* buffer.  "Text command mode" is like M-x gdb
in Emacs 21.

-- 
Nick                                           http://www.inet.net.nz/~nickrob