[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.
Nick
PS What about gdbmi.el. Does that work? (GDB 6.1 is almost out)