Re: gdb/mi

Greg Watson
2002-07-10T23:10:33Z

>>I have some questions/comments about gdb/mi if someone could help out:
>>
>>1. I've configure gdb 5.2 with --enable-gdbmi and --with-uiout.
>>However when I run "gdb --interpreter=mi" the initial messages are
>>not in console stream output format, but later messages are. Is
>>this by design?
>
>You mean the (C) startup message? No one has thought about that.
>(BTW, you no longer need to explicitly configure in GDB/MI, since
>5.2, it has been enabled by default).

Seems like Apple must have already fixed this in the MacOS X version
(which is 5.0). Here is the output from 'gdb -i mi' to prove it. :-)

~"GNU gdb 5.0 (Thu Jun 20 15:19:17 GMT 2002)\n"
~"Copyright 2002 Free Software Foundation, Inc.\n"
~"GDB is free software, covered by the GNU General Public License,
and you are\n"
~"welcome to change it and/or distribute copies of it under certain
conditions.\n"
~"Type \"show copying\" to see the conditions.\n"
~"There is absolutely no warranty for GDB. Type \"show warranty\"
for details.\n"
~"This GDB was configured as \"powerpc-apple-darwin5.5\".\n"
~"Setting up the environment for debugging gdb.\n"

>>2. When I run a target program, it's output is not in target stream
>>output format. Should this be the case?
>
>It depends.
>
>This is a problem that has been discussed before on this list. If
>the target program is native then GDB would need to do something
>like play with pty's or start a separate terminal program. If the
>target is remote then the output being encapsulated depends on
>support for this in the remote protocol.

Oh damn! I thought you'd already done the hard stuff and I could get
rid of the pty code from my front end. I guess that means that
asynchronous commands will only work with remote targets as well? Can
you point me at the approximate archive so I can review this
discussion?

>
>>3. The gdb/mi output syntax in the manual does not quite reflect
>>reality. In particular the 'console-stream-output',
>>'target-stream-output' and 'log-stream-output' rules should be
>>suffixed with 'nl'. Also, I've observed an 'out-of-band-record'
>>appearing after a 'result-record' but the syntax doesn't allow
>>this. I guess it should be something like:
>>
>>output -> (out-of-band-record)* [result-record]
>>(out-of-band-record)* "(gdb)" nl
>
>Yes (but I'll fix it a different way). Good catch.

If you're going to allow general program output to be intermingled
with the mi output then this should probably also be reflected in the
syntax.

Do you know if there are any plans to handle native output within the
mi syntax, or would you be interested in someone adding this
functionality, or is it likely to be too difficult?

Cheers,

Greg