From: Vladimir Prus <vladimir@codesourcery.com>
To: gdb@sources.redhat.com
Subject: Re: MI threads behaviour
Date: Wed, 16 Jul 2008 13:23:00 -0000 [thread overview]
Message-ID: <200807161723.18272.vladimir@codesourcery.com> (raw)
In-Reply-To: <20080716130755.GA1521@caradoc.them.org>
On Wednesday 16 July 2008 17:07:55 Daniel Jacobowitz wrote:
> On Wed, Jul 16, 2008 at 04:52:24PM +0400, Vladimir Prus wrote:
> > Does this happen in non-stop? Anyway, thread selections due to stop in all-stop
> > mode all result in notification.
>
> Beats me.
>
> > > You'd get a notification there but only because we changed from thread
> > > 1 to thread 2 inside the command. For the purposes of that command,
> > > the "currently selected thread" is thread 1.
> > > This is the command I don't think should get a notification:
> > >
> > > -thread-select 2
> > > -interpreter-exec --thread 1 console "thread 1"
> >
> > Why? Is it guaranteed that whenever CLI command is executed, the value to
> > the 'thread' option is equal to whatever is current for UI?
>
> I'm totally lost with what you're trying to accomplish with these
> notifications.
>
> Logically the CLI window offered by the GUI has a current thread.
It may have. The most obvious design is that a given main window
of an IDE has a current thread, and there's no separate current thread
specific to CLI console widget.
> The GUI selects it when a CLI command is run, either by -thread-select
> or by -interpreter-exec --thread.
No. GUI makes sure that the CLI command *entered by the user in CLI console*
is executed in whatever thread is current, from user's point of view. Nothing
prevents GUI to run CLI commands outside of CLI console, for whatever reasons.
> If the CLI command changes that
> thread, then the GUI needs to update its state from the notification.
> If it doesn't change the thread, the GUI doesn't need to update.
>
> So what purpose is =thread-changed,thread-id="1" in the above example?
The general purpose of "thread-selected" notification is to inform the
frontend that the user wants a given thread to be selected in UI.
Skipping such notification for
-interpreter-exec --thread 1 console "thread 1"
is OK only if we document that the "--thread" parameter should always be
the selected UI thread, which seems a hard assumption. Say, a frontend
might want to allow user-defined commands to be run on stop and send CLI
commands on stop explicitly (either because breakpoint commands are not
implemented in MI, or because frontend wants to run some commands no
matter which breakpoint is hit). In non-stop mode, such commands presumably,
will be run in the context of the thread that hit a breakpoint. But this
thread is not necessary the thread that is selected in UI. I don't have
a fully-baked example that will be broken by skipping the notification in
this case; but I'm not confident such example will not arise.
- Volodya
next prev parent reply other threads:[~2008-07-16 13:23 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-06-18 12:02 Vladimir Prus
2008-07-08 5:29 ` Vladimir Prus
2008-07-09 21:03 ` Daniel Jacobowitz
2008-07-10 13:14 ` Marc Khouzam
2008-07-14 15:56 ` Pawel Piech
2008-07-14 16:04 ` Marc Khouzam
2008-07-14 20:27 ` Pawel Piech
2008-07-16 11:51 ` Vladimir Prus
2008-07-16 12:11 ` Daniel Jacobowitz
2008-07-16 12:52 ` Vladimir Prus
2008-07-16 13:08 ` Daniel Jacobowitz
2008-07-16 13:23 ` Vladimir Prus [this message]
2008-07-16 13:33 ` Daniel Jacobowitz
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=200807161723.18272.vladimir@codesourcery.com \
--to=vladimir@codesourcery.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