emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Toolbar problems with GDB mode.


From: Nick Roberts
Subject: Re: Toolbar problems with GDB mode.
Date: Sat, 4 Jan 2003 00:25:35 +0000

 > I see that the GUD menu also hangs around after quitting gdb.

This could go too if gdb-quit is modified appropriately (and moved into
gud.el)

 > Well, I don't know if they are gdb (the program) problems or gdba (the mode)
 > problems.  I just upgraded gdb to 5.2.1.

The chances are about 99.9% that its with gdba.

 > For example, I do:
 > M-x gdba
 > Run gdba (like this): gdb -annotate=2 emacs
 > 
 > (The -annotate=2 is put there by gdba).
 > Then the .gdbinit puts two breakpoints, nr 2 in emacs.c and gdba loads
 > that file.  This is kind of annoying since I had the file I wanted to
 > debug visible, but now it is buried.  But this is not the big bug.
 
It doesn't load emacs.c because it has a breakpoint there but because
thats where the execution starts. Thats standard practice for GUI debuggers.

 > If I go to a C file and do C-x C-v C-a (set breakpoint), here is what
 > the *gud-emacs* buffer prints:
 > 
 > breakpoint     keep y   0x0810585c in abort at emacs.c:412
 > 2   breakpoint     keep y   0x080db76f ---Type <return> to continue, or q 
 > <return> to quit---
 > in x_error_quitter at xterm.c:12727
 > 
 > I typed return at "quit---"
 > 
 > No break point is set.  This "--- Type <return> ..." pops up at a lot
 > of places, for example when running the program:
 ...

gdba requires that the screen size for GDB is unlimited. In emacs, TERM = dumb
means that this is normally the case. I'm guessing you've got something in a
.gdbinit file (possibly in your home directory) that says (something like):

set height 24

You can recover from this by typing `set height 0' in the GUD buffer but its
tidier if its not set initially. `show height' should then give:

Number of lines gdb thinks are in a page is unlimited.

and gdba should work properly.

 > Is gdb-quit supposed to be run manually?  It is not run if I type q
 > at the (gdb) prompt.

Yes. Its a command in emacs. The problem is communication GDB and emacs. Quite
often emacs doesn't know what GDB is doing and thats what the annotations
used in gdba are for. With quit the status of the sub-process (GDB) changes
so perhaps I can hook gdb-quit up to that. I'll give it some thought.

Nick




reply via email to

[Prev in Thread] Current Thread [Next in Thread]