GDB/MI Output Syntax

Andrew Cagney cagney@gnu.org
Tue Aug 24 18:59:00 GMT 2004


> 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.

That's clearly a bug in the doco.  Any half decent compiler construction 
course will use a new grammer each year (while stopping cheats, also 
means that the students get to flush out a few bugs :-).

-> should all the [missing] @var{nl} be moved to @var{output}, that way 
the're all in the one place.

Rossi writes:
> Yes, this could work. However, was the original grammer meant to be
> LALR(2)?

rewritable into something needing only one level of look-ahead, which I 
see is being done.

Andrew





More information about the Gdb mailing list