From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 24549 invoked by alias); 24 Aug 2004 12:30:08 -0000 Mailing-List: contact gdb-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sources.redhat.com Received: (qmail 24481 invoked from network); 24 Aug 2004 12:30:03 -0000 Received: from unknown (HELO lakermmtao10.cox.net) (68.230.240.29) by sourceware.org with SMTP; 24 Aug 2004 12:30:03 -0000 Received: from white ([68.9.64.121]) by lakermmtao10.cox.net (InterMail vM.6.01.03.02.01 201-2131-111-104-103-20040709) with ESMTP id <20040824123004.UIJR16005.lakermmtao10.cox.net@white>; Tue, 24 Aug 2004 08:30:04 -0400 Received: from bob by white with local (Exim 3.35 #1 (Debian)) id 1BzaR9-0004Ml-00; Tue, 24 Aug 2004 08:30:03 -0400 Date: Tue, 24 Aug 2004 12:30:00 -0000 From: Bob Rossi To: Michael Chastain , \@white Cc: gdb@sources.redhat.com Subject: Re: GDB/MI Output Syntax Message-ID: <20040824123003.GB16751@white> Mail-Followup-To: Michael Chastain , \@white, gdb@sources.redhat.com References: <20040824031242.GA15980@white> <412AC0DC.nailDS61X8G63@mindspring.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <412AC0DC.nailDS61X8G63@mindspring.com> User-Agent: Mutt/1.3.28i X-SW-Source: 2004-08/txt/msg00313.txt.bz2 On Tue, Aug 24, 2004 at 12:15:24AM -0400, Michael Chastain wrote: > Bob Rossi 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