Mirror of the gdb mailing list
 help / color / mirror / Atom feed
From: Jim Ingham <jingham@apple.com>
To: Bob Rossi <bob_rossi@cox.net>
Cc: gdb@sources.redhat.com
Subject: Re: MI query questions
Date: Tue, 30 May 2006 18:56:00 -0000	[thread overview]
Message-ID: <6FE49E5C-CD1C-45FC-B2FF-97E4B2FFA779@apple.com> (raw)
In-Reply-To: <20060530181143.GE31100@brasko.net>

Seems like having a callback in your parser to handle async messages  
from gdb represents cleanly what is going on.  You haven't gotten a  
completed MI command yet, and you're not ready for another MI  
command.  But gdb is asking on the side for more input.  Seems like  
making the two cases look the same is more likely to cause trouble.

Jim


On May 30, 2006, at 11:11 AM, Bob Rossi wrote:

> 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


  reply	other threads:[~2006-05-30 18:40 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-05-30  3:48 Bob Rossi
2006-05-30  8:20 ` Daniel Jacobowitz
2006-05-30 17:15   ` Jim Ingham
2006-05-30 17:41     ` Bob Rossi
2006-05-30 17:53       ` Jim Ingham
2006-05-30 17:55         ` Jim Ingham
2006-05-30 17:55           ` Bob Rossi
2006-05-30 18:12             ` Daniel Jacobowitz
2006-05-30 20:14             ` Jim Ingham
2006-05-30 18:27               ` Bob Rossi
2006-05-30 18:56                 ` Jim Ingham [this message]
2006-05-30 20:46                   ` Bob Rossi
2006-05-30 21:11                     ` Jim Ingham
2006-05-30 21:15                       ` Daniel Jacobowitz
2006-05-30 21:30                         ` Jim Ingham
2006-05-31  9:38                           ` Daniel Jacobowitz
2006-05-31 13:27                             ` Bob Rossi
2006-05-30 17:00 ` Nick Roberts
2006-05-30 17:32   ` Bob Rossi
2006-05-31 10:29     ` Nick Roberts
2006-05-31 13:25       ` Bob Rossi
2006-06-01  0:58         ` Nick Roberts

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=6FE49E5C-CD1C-45FC-B2FF-97E4B2FFA779@apple.com \
    --to=jingham@apple.com \
    --cc=bob_rossi@cox.net \
    --cc=gdb@sources.redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox