From: Jim Ingham <jingham@apple.com>
To: Daniel Jacobowitz <drow@false.org>
Cc: Bob Rossi <bob_rossi@cox.net>, Alain Magloire <alain@qnx.com>,
gdb@sources.redhat.com
Subject: Re: asynchronous MI output commands
Date: Thu, 11 May 2006 17:35:00 -0000 [thread overview]
Message-ID: <896BBC4B-59A7-4BD5-BA2A-C21D19E36392@apple.com> (raw)
In-Reply-To: <20060511162256.GA9407@nevyn.them.org>
On May 11, 2006, at 9:22 AM, Daniel Jacobowitz wrote:
> On Thu, May 11, 2006 at 08:42:03AM -0700, Jim Ingham wrote:
>> I think that the lack of notification about what has gone on when
>> somebody uses interpreter-exec to run the target is just a bug in the
>> interpreter-exec command. Since that command allows lots of stuff to
>> go on behind the MI client's back, you need to inform the client
>> about this. You could either post asynchronous notifications about
>> what happened (for instance an =running or whatever) or you can just
>> make the -interpreter-exec command behave like -exec-next when it
>> does indeed run the target. The latter is what we did for Xcode, so
>> you get the *stopped message if the target was run.
>
> This is a topic I'd like to see a single consensus on, sometime soon.
> I have an ulterior motive.
>
> I wrote, some time ago, patches to use Guile to implement GDB CLI
> commands. It works by, roughly, opening a bidirectional MI channel to
> Guile, and temporarily suspending the CLI channel. But if the front
> end in use is MI, what notifications should that frontend get? Should
> it be told the target is running, even if e.g. the user defined
> command
> just calls a function in the target? Should the Guile interpreter get
> notifications when the user or MI client does something?
>
> Basically, I think that getting this right requires multiple
> interpreters live at the same time.
>
I'm not sure I understand the design. Does the user have access both
to the MI channel (presumably through the Guile interface) and to the
normal gdb CLI interpreter? That does sound like it would be hard to
get right...
In our case, we funnel all access to the CLI through the -interpreter-
exec command. So we do need to be careful that the -interpreter-exec
wrapper arranges to tell the MI about all the things that the CLI
command might do (including setting breakpoints, changing the frame,
running the target, etc). But I don't think the Xcode design
requires two interpreters live simultaneously, it just requires that
the notification hooks be sufficient for the purposes.
BTW, we don't notify the UI that the target has run if you just call
a function. Maybe we should so the UI could better figure out what
is going on if a user called function stalls for some reason, but it
makes the UI's life simpler if it doesn't know about this.
Jim
> I'd like to come back to that code someday. And, preferably, merge
> Perl and Python support also. Kip Macy posted Perl bindings and the
> Python ones would be easy to write, now that I know Python - in fact
> it's the only one out of the three I'd be comfortable doing myself,
> the Guile bits were very skeletal.
>
> --
> Daniel Jacobowitz
> CodeSourcery
next prev parent reply other threads:[~2006-05-11 16:40 UTC|newest]
Thread overview: 53+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-05-11 15:02 Alain Magloire
2006-05-11 15:42 ` Bob Rossi
2006-05-11 16:40 ` Jim Ingham
2006-05-11 17:03 ` Daniel Jacobowitz
2006-05-11 17:35 ` Jim Ingham [this message]
2006-05-11 19:24 ` Bob Rossi
2006-05-11 19:25 ` Jim Ingham
-- strict thread matches above, loose matches on Subject: below --
2006-05-12 0:19 Alain Magloire
2006-05-10 22:15 Alain Magloire
2006-05-11 3:41 ` Bob Rossi
2006-05-11 8:58 ` Vladimir Prus
2006-05-11 10:48 ` Bob Rossi
2006-05-11 10:52 ` Vladimir Prus
2006-05-11 11:14 ` Bob Rossi
2006-05-11 12:50 ` Vladimir Prus
2006-05-11 14:50 ` Bob Rossi
2006-05-09 9:46 Alain Magloire
2006-05-07 22:30 Bjarke Viksoe
2006-05-07 22:50 ` Daniel Jacobowitz
2006-05-08 0:36 ` Bjarke Viksoe
2006-05-08 1:52 ` Daniel Jacobowitz
[not found] <1147034156.28828.ezmlm@sourceware.org>
2006-05-07 21:27 ` Bjarke Viksoe
2006-05-07 21:41 ` Daniel Jacobowitz
2006-05-10 12:43 ` Vladimir Prus
2006-05-06 1:26 Bob Rossi
2006-05-06 1:59 ` Daniel Jacobowitz
2006-05-06 2:48 ` Bob Rossi
2006-05-06 3:37 ` Nick Roberts
2006-05-06 15:20 ` Bob Rossi
2006-05-06 4:06 ` Daniel Jacobowitz
2006-05-06 4:05 ` Daniel Jacobowitz
2006-05-06 11:53 ` Bob Rossi
2006-05-06 12:06 ` Bob Rossi
2006-05-06 3:14 ` Bob Rossi
2006-05-06 4:04 ` Nick Roberts
2006-05-06 11:49 ` Daniel Jacobowitz
2006-05-06 11:50 ` Bob Rossi
2006-05-06 16:52 ` Daniel Jacobowitz
2006-05-06 19:45 ` Bob Rossi
2006-05-06 20:37 ` Daniel Jacobowitz
2006-05-07 0:44 ` Bob Rossi
2006-05-07 20:35 ` Daniel Jacobowitz
2006-05-07 20:42 ` Bob Rossi
2006-05-07 22:01 ` Daniel Jacobowitz
2006-05-08 1:22 ` Bob Rossi
2006-05-08 2:03 ` Daniel Jacobowitz
2006-05-09 21:48 ` Bob Rossi
2006-05-08 6:38 ` Nick Roberts
2006-05-08 11:28 ` Bob Rossi
2006-05-08 1:26 ` Bob Rossi
2006-05-06 11:51 ` Bob Rossi
2006-05-06 3:27 ` Nick Roberts
2006-05-06 16:40 ` Bob Rossi
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=896BBC4B-59A7-4BD5-BA2A-C21D19E36392@apple.com \
--to=jingham@apple.com \
--cc=alain@qnx.com \
--cc=bob_rossi@cox.net \
--cc=drow@false.org \
--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