From: Jim Ingham <jingham@apple.com>
To: gdb@sources.redhat.com
Subject: Re: Queries in MI
Date: Thu, 07 Jul 2005 18:10:00 -0000 [thread overview]
Message-ID: <299DE329-298E-4020-A349-CA4C510970EF@apple.com> (raw)
In-Reply-To: <1120724185.29158.ezmlm@sources.redhat.com>
Seems to me like the need for query responses from the Front End
comes in two categories. One is things that are predictable, like
the question "do you want to set undefined breakpoints". Or when you
re-run with the executable still running and gdb asks whether you
want to terminate the target. In these cases, the MI command should
be crafted to allow the FE to select one choice or the other, and the
default should be something reasonable. There's no reason to support
a query here, the FE should be able to figure out what it wants in
advance and just do it.
The other is when the Front End can't a priori know enough to make a
decision. The only example we've come across so far is with
breakpoints that resolve to multiple choices. In that case, what we
do is we don't set any breakpoints, but return a list of choices to
the UI instead. Then I've tarted up the -break-insert so that it
will take a selection list as well, and if the selection list is
there, it will choose those options from the list. What we did is a
little weak in that I don't verify that the breakpoint expression you
send back with the selection list is the same as the one you sent
when I generated the list. But that was complicated to do, and I was
pretty sure we could trust the FE not to willfully shoot itself in
the foot here...
This way, we don't have to keep stateful interactions suspended
between the UI & the FE, which seemed a more robust design to me.
I don't think I see any cases of queries that can't be handled this way.
Of course, you have to make sure that commands issued with "-
interpreter-exec console" return the queries to the console properly,
that's a separate issue. That works in our gdb, but I don't remember
whether Keith, Elena et al merged all this stuff over or not.
Jim
On Jul 7, 2005, at 1:16 AM, gdb-digest-help@sources.redhat.com wrote:
>
>
>
>>> I'm not sure what you're suggesting, but Emacs will always want
>>> to allow
>>> CLI input through the GUD buffer which, for example, will be
>>> forwarded to
>>> GDB as:
>>>
>>> -interpreter-exec console "b asdf"
>>>
>>
>> Of course. Your stating the case when the user sends a command to GDB
>> and get's a query as a response. That's fine.
>>
>> What about the case when the FE sends a command to GDB and has to
>> deal
>> with the query? That isn't capable with the current output. The MI
>> response would have to have the query information built into it,
>> like,
>>
>> -break-insert "b asdf"
>> ^done,query={choice1="...",choice2="..."}
>> FE sends->choice1
>> ...
>>
>
> Well "b asdf" is a CLI command, but I take your point. Currently,
> if asdf is
> symbol that is in a shared library that is yet to be loaded, then
>
> (gdb)
> -break-insert asdf
> &"Function \"asdf\" not defined.\n"
> ^done
> (gdb)
>
> This is the opposite behaviour to -interpreter-exec console "b asdf"
> and the same as you would you would get using CLI with "set confirm
> off".
>
>
>> I currently don't have a need for such a feature, but I'm just
>> suggesting that the current mechanism doesn't allow the FE to do this
>> sort of thing nicely. I'm sure it will be needed eventually.
>>
>
> You're suggesting a syntax. I'm not sure what the mechanism should
> be,
> because if GDB is made to wait for a response that might break other
> things.
>
> Nick
>
next parent reply other threads:[~2005-07-07 18:10 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1120724185.29158.ezmlm@sources.redhat.com>
2005-07-07 18:10 ` Jim Ingham [this message]
2005-07-08 16:37 Alain Magloire
2005-07-08 17:39 ` Jim Ingham
-- strict thread matches above, loose matches on Subject: below --
2005-07-06 13:14 MI usage inside a user-defined commands Daniel Jacobowitz
2005-07-06 13:46 ` Karganov Konstantin
2005-07-06 21:26 ` Nick Roberts
2005-07-06 21:28 ` Daniel Jacobowitz
2005-07-06 22:50 ` Queries in MI [was Re: MI usage inside a user-defined commands] Nick Roberts
2005-07-06 23:46 ` Bob Rossi
2005-07-07 0:33 ` Queries in MI Nick Roberts
2005-07-07 1:34 ` Bob Rossi
2005-07-07 3:32 ` 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=299DE329-298E-4020-A349-CA4C510970EF@apple.com \
--to=jingham@apple.com \
--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;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).