GDB/MI Output Syntax

Bob Rossi bob@brasko.net
Tue Aug 24 12:30:00 GMT 2004


On Tue, Aug 24, 2004 at 12:15:24AM -0400, Michael Chastain wrote:
> Bob Rossi <bob@brasko.net> wrote:
> 
>   ~"GNU gdb 6.1-debian\n"
>   ~"Copyright 2004 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 \"i386-linux\"."
>   ~"\n"
>   (gdb) 
> 
> This looks almost okay to me, it's just got a few differences with
> newline characters versus the grammar
> 
>   output -> (out-of-band-record)* [result-record] "gdb" NL
>   (out-of-band-record)* -> stream_record stream_record stream_record stream_record stream_record stream_record stream_record stream_record
>   stream_record -> console_stream_output
>   console_stream_output -> "~" C_STRING
>   [result-record] ->
> 
> It is eight stream-records in a row, where each stream-record is a
> console-stream-output.  The gotcha is that the grammar as written does
> not allow for a NL after a console-stream-output or a stream-record.

Yes, this is the error I saw. I am glad to see that it's reproducable.

> bob> Once my parser is finalized, I propose we validate the output of GDB
> bob> against it somehow in the testsuite.
> 
> That would be awesome.  But how can we hook up a bison grammar to TCL ...
> something for me to sleep on.
> 
> Although that's not my area of test suite; that is Andrew and Elena's
> area.
> 
> If we put a machine-compilable grammer into the gdb doco, then front end
> authors could file PR's whenever gdb produces output that doesn't meet
> the grammar.  Conversely, if the gdb team updates the MI, we would be
> forced to update the grammar to keep our test suite passing, and the
> updated grammar would tip off the front end writers that new output
> forms are coming at them.

Yes, I would very much appreciate this. However, how does this work with
backwards compatibility?

I don't think I would have a problem if GDB changed the grammar as long
as somehow a revision of some sort was put into GDB. So that my front
end could determine what parser to use for this version of GDB.

Thanks,
Bob Rossi



More information about the Gdb mailing list