From: Daniel Jacobowitz <drow@mvista.com>
To: Andrew Cagney <ac131313@ges.redhat.com>
Cc: gdb@sources.redhat.com
Subject: Re: RFC: Two small remote protocol extensions
Date: Wed, 28 Aug 2002 06:33:00 -0000 [thread overview]
Message-ID: <20020828133445.GA16642@nevyn.them.org> (raw)
In-Reply-To: <3D6C4C4E.4050409@ges.redhat.com>
On Wed, Aug 28, 2002 at 12:06:38AM -0400, Andrew Cagney wrote:
>
> >Sure. I suppose we should clean up the interface to resume, to prevent
> >all this confusion re-arising... which means figuring out our possible
> >behaviors, and whether they are even implementable on particular
> >targets.
>
> The spanner in the works here is simulators. They can't implement
> schedule-locking because their scheduler is hardwired. The best they
> can manage is step off current instruction.
>
> A simple version of this (PPC) (from memory) always implements
> step->schedule. If you step I the procesor. It complets one
> instruction on the current CPU and then schedules the next CPU for the
> next instruction.
OK, makes sense.
> >On Linux the options for any given LWP (at the moment, that means for
> >any given thread) are step, run, stop. All combinations are available.
> >I think the _useful_ ones are:
> >
> > step one, stop others
> > step one, continue others
> > continue one, stop others
> > continue one, continue others
> >
> >And, of course:
> > stop one, stop others
> >:)
> >
>
> What is the absolute minimum needed?
>
> - step off breakpoint / thread-hop
> = using a sched lock single-step
> = using software single-step breakpoints and a sched lock continue
> (Note: this is where the existing interface really falls down -- step=0
> so remote.c won't know to schedule-lock)
>
> - continue
>
> I think, after that, everything is an efficiency gain. Looking at the list:
>
> > step one, stop others
>
> Hardware single-step off of breakpoint.
> TPID, STEP, !OTH
> HcTID, s
>
> > step one, continue others
>
> Hardware single-step.
> TPID, STEP, OTH
> H???, s
>
> > continue one, stop others
>
> Schedule lock.
> Software single-step off breakpoint.
> TPID, !STEP, !OTH (wiered)
> HcTID, c
>
> > continue one, continue others
>
> Software single-step.
> General resume.
> TPID, !STEP, OTH
> Hc0, c
>
> > Something like:
> > resume (ptid, step, run_others, target_signal)
> > maybe? Does anyone think step_all is useful (I don't)?
>
> It is what a simulator might implement.
>
> So looking at the remote protocol. There in't a way of specifying TPID,
> STEP, OTH (your bug).
OK, I suppose that makes sense. It's pretty much where I was to begin
with: if Hc is non-zero, lock to that thread; if Hc is 0, resume all
threads, but where do we step? How would you like to see us specify
this - I used Hs, a new step packet taking a thread argument might work
too... etc.
There's also the question of whether any other simulators or targets
handle this, and how they behave; I'm not familiar with them. Do they
treat "HcTID, s" as single-step-one-thread-only? I guess they probably
do.
> >PS:
> >Some day letting the user be more precise (run these two threads) would
> >be nice. I envision a day in the distant future:
> > -> Continue thread 1
> > -> Continue thread 2
> > -> Wait for inferior status
> > <- All threads stopped, thread 1, SIGSEGV
> >or
> > -> Continue all threads
> > -> Wait for inferior status [maybe implicit in the all-threads
> > request]
> > <- Thread 1 stopped, shared lib breakpoint, all other threads running
>
> Try ``target remote-async''.
Yes, that has the general model that I'm looking for, but this requires
some protocol changes - the protocol would be async-only. It wouldn't
make sense as a synchronous protocol.
--
Daniel Jacobowitz
MontaVista Software Debian GNU/Linux Developer
next prev parent reply other threads:[~2002-08-28 13:33 UTC|newest]
Thread overview: 53+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-05-01 19:25 Daniel Jacobowitz
2002-05-02 8:38 ` Andrew Cagney
2002-05-02 8:52 ` Daniel Jacobowitz
2002-05-02 9:39 ` Andrew Cagney
2002-05-02 12:14 ` Daniel Jacobowitz
2002-05-02 12:22 ` Kevin Buettner
2002-05-02 12:34 ` Daniel Jacobowitz
2002-05-02 13:13 ` Andrew Cagney
2002-05-02 14:09 ` Daniel Jacobowitz
2002-05-03 11:24 ` Andrew Cagney
2002-05-03 14:28 ` Daniel Jacobowitz
2002-05-03 15:18 ` Andrew Cagney
2002-05-03 15:22 ` Daniel Jacobowitz
2002-05-04 19:59 ` Andrew Cagney
2002-05-02 13:13 ` Quality Quorum
2002-05-02 14:13 ` Daniel Jacobowitz
2002-05-03 13:07 ` Andrew Cagney
2002-08-16 7:30 ` Daniel Jacobowitz
2002-08-16 7:42 ` Andrew Cagney
2002-08-16 7:52 ` Daniel Jacobowitz
2002-08-16 8:21 ` Andrew Cagney
2002-08-22 19:23 ` Andrew Cagney
2002-08-22 19:36 ` Daniel Jacobowitz
2002-08-23 7:24 ` Quality Quorum
2002-08-23 7:26 ` Daniel Jacobowitz
2002-08-23 7:49 ` Quality Quorum
2002-08-23 8:57 ` Andrew Cagney
2002-08-23 11:16 ` Quality Quorum
2002-08-23 12:39 ` Andrew Cagney
2002-08-23 13:10 ` Quality Quorum
2002-08-27 20:23 ` Andrew Cagney
2002-08-28 8:31 ` Quality Quorum
2002-08-28 9:44 ` Andrew Cagney
2002-08-28 9:49 ` Daniel Jacobowitz
2002-08-22 21:08 ` Andrew Cagney
2002-08-23 5:44 ` Daniel Jacobowitz
2002-08-23 12:10 ` Andrew Cagney
2002-08-23 12:53 ` Andrew Cagney
2002-08-23 13:15 ` Daniel Jacobowitz
2002-08-27 21:07 ` Andrew Cagney
2002-08-28 6:33 ` Daniel Jacobowitz [this message]
2002-09-25 8:51 ` Daniel Jacobowitz
2002-09-25 11:17 ` Andrew Cagney
2002-09-26 18:39 ` Andrew Cagney
2002-09-26 18:48 ` Andrew Cagney
2003-06-29 7:51 ` Daniel Jacobowitz
2003-09-03 23:41 ` Andrew Cagney
2003-09-17 15:51 ` Daniel Jacobowitz
2003-09-17 16:19 ` Andrew Cagney
2003-09-17 16:23 ` Daniel Jacobowitz
2003-09-22 0:27 ` Andrew Cagney
2003-09-22 1:01 ` Daniel Jacobowitz
2003-09-22 3:02 ` Andrew Cagney
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=20020828133445.GA16642@nevyn.them.org \
--to=drow@mvista.com \
--cc=ac131313@ges.redhat.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