[Top][All Lists]

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

Re: gdb-ui and Mac OS X

From: Nick Roberts
Subject: Re: gdb-ui and Mac OS X
Date: Fri, 26 Mar 2004 20:35:13 +0000

 > I've tried gdb-ui on Mac OS X recently and indeed got into problems.
 > Here is what I did:
 > M-x gdb RET
 > At prompt: gdb --annotate=3 emacs RET
 > Here is what I got in the *gdb* buffer:
 >   Current directory is ~/src/emacs/trunk/src/
 >   GNU gdb 5.3-20030128 (Apple version gdb-309) (Thu Dec  4 15:41:30 GMT 2003)
 >   Copyright 2003 Free Software Foundation, Inc.
 >   GDB is free software, covered by the GNU General Public License, and you 
 > are
 >   welcome to change it and/or distribute copies of it under certain 
 > conditions.
 >   Type "show copying" to see the conditions.
 >   There is absolutely no warranty for GDB.  Type "show warranty" for details.
 >   This GDB was configured as "powerpc-apple-darwin".
 >   Reading symbols for shared libraries ............... done
 >   frames-invalid
 >   DISPLAY = :0.0
 >   TERM = dumb
 >   Breakpoint 1 at 0x9009ec18
 >   Breakpoint 2 at 0xc279c: file xterm.c, line 7781.
 >   (gdb) 
 > It looks like the `frames-invalid' was not filtered.

I've noticed this, intermittently, before. I think its depends on real time
issues and appears when the frames-invalid annotation is in a different output
chunk to the first prompt annotation. However, I don't think it is related to
the problem that follows and it just makes the initial output slightly ugly.

 > It also opened a window showing me the top of src/emacs.c.
 > And it signalled an error:
 >   error("Phase error in gdb-pre-prompt (got %s)" pre-emacs)
 >   gdb-pre-prompt("")
 >   gud-gdba-marker-filter("\npre-prompt\n(gdb) \nprompt\n")
 >   apply(gud-gdba-marker-filter "\npre-prompt\n(gdb) \nprompt\n")
 >   gud-marker-filter("\npre-prompt\n(gdb) \nprompt\n")
 >   gud-filter(#<process gud-emacs> "\npre-prompt\n(gdb) \nprompt\n")
 > e sink RET tells me that the value of `sink' is `pre-emacs'.
 > This was with a fresh build of Emacs-CVS.

A post-prompt annotation is being lost somewhere. It happens after "set height
0" is sent to gdb. I would have said that it happened when the process filter
was switched from gud-gdb-marker-filter to gud-gdba-marker-filter but Ken had
a similar problem with M-x gdba.

If you instrument gud-gdba-marker-filter with Edebug and start gdb as before,
then when you reach the variable `string' (in the first expression), in the
mini-buffer, you should get:

Result: "\npost-prompt\n"

If you get:

Result: "\npre-prompt\n(gdb) \nprompt\n"

then perhap you can instrument gud-gdb-marker-filter and find out where the
post-prompt annotation is lost.

Hope this helps.


PS What about gdbmi.el. Does that work? (GDB 6.1 is almost out)

reply via email to

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