This is the mail archive of the
gdb@sources.redhat.com
mailing list for the GDB project.
Re: GDB/MI Output Syntax
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