From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 16156 invoked by alias); 30 May 2006 18:12:55 -0000 Received: (qmail 16143 invoked by uid 22791); 30 May 2006 18:12:54 -0000 X-Spam-Check-By: sourceware.org Received: from eastrmmtao02.cox.net (HELO eastrmmtao02.cox.net) (68.230.240.37) by sourceware.org (qpsmtpd/0.31) with ESMTP; Tue, 30 May 2006 18:12:50 +0000 Received: from localhost.localdomain ([68.9.66.48]) by eastrmmtao02.cox.net (InterMail vM.6.01.06.01 201-2131-130-101-20060113) with ESMTP id <20060530181143.MZME15470.eastrmmtao02.cox.net@localhost.localdomain>; Tue, 30 May 2006 14:11:43 -0400 Received: from bob by localhost.localdomain with local (Exim 4.52) id 1Fl8gx-0006CR-Kc; Tue, 30 May 2006 14:11:43 -0400 Date: Tue, 30 May 2006 18:27:00 -0000 From: Bob Rossi To: Jim Ingham Cc: gdb@sources.redhat.com Subject: Re: MI query questions Message-ID: <20060530181143.GE31100@brasko.net> Mail-Followup-To: Jim Ingham , gdb@sources.redhat.com References: <20060529122337.GB2021@brasko.net> <20060529144640.GA12145@nevyn.them.org> <20060530171518.GB31100@brasko.net> <7A4B9D88-47FB-4721-949F-632AF2E449FC@apple.com> <20060530175310.GD31100@brasko.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.9i X-IsSubscribed: yes Mailing-List: contact gdb-help@sourceware.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sourceware.org X-SW-Source: 2006-05/txt/msg00398.txt.bz2 On Tue, May 30, 2006 at 10:59:38AM -0700, Jim Ingham wrote: > > On May 30, 2006, at 10:53 AM, Bob Rossi wrote: > > >On Tue, May 30, 2006 at 10:48:53AM -0700, Jim Ingham wrote: > >>Actually, to avoid confusion, this really looks like: > >> > >>(gdb) set interpreter mi1 > >>-interpreter-exec console-quoted "break raise" > >>~"[0] cancel\n[1] all\n" > >>~"\nNon-debugging symbols:\n" > >>~"[2] -[NSException raise]\n" > >>~"[3] raise\n" > >>=read-one-line,prompt="> " > >> > >>In our version of gdb the console interpreter really is the straight > >>CLI console interpreter - this is required to get the "set > >>interpreter" command to work. So we had to invent another > >>interpreter that did the proper quoting. Anyway, this is what it > >>would look like for you... > > > >This is also the solution I was thinking of. However, I would like to > >modify the MI OUTPUT record to show this as a possibility. Also, I > >think > >that this should be 1 full response. > > (gdb) set interpreter mi1 > > -interpreter-exec console-quoted "break raise" > > ~"[0] cancel\n[1] all\n" > > ~"\nNon-debugging symbols:\n" > > ~"[2] -[NSException raise]\n" > > ~"[3] raise\n" > > =read-one-line,prompt="> " > > (gdb) > > > >And then the user will send the command, and then get another full > >response representing the breakpoint output. > > > >Does this make sense? > > I'm not sure I like this. It doesn't really seem to mirror what's > going on. The -interpreter-exec command hasn't finished, rather, > it's asking - out of band - for some more information. So sending an > out-of-band message with this request seems cleaner. Why do you want > the extra (gdb) prompt? > > Jim I'm not sure what I asked for makes the most sense. However, I don't really like what I see above. Basically, up until now, the only time a front end would send data is at the (gdb) prompt. That's when GDB is ready to except another command. This is also nice because if the FE generates a parser, it wants to feed that parser data until it spits out an MI output record. The parser eventually spits out another MI outout record, the FE process's it, and then sends another command to GDB. However, in the case above, the parser will keep eating data, and then at some point, GDB will stop sending data and the MI output record has not been completed. This means the parser will have to have some ugly callback mechanism saying that the FE should send another command to GDB. What about something like this: (gdb) set interpreter mi1 -interpreter-exec console-quoted "break raise" ~"[0] cancel\n[1] all\n" ~"\nNon-debugging symbols:\n" ~"[2] -[NSException raise]\n" ~"[3] raise\n" =read-one-line,prompt="> " (gdb_oob_query) I'm just brain storming here. What did you think of my rational? Bob Rossi