From: Andrew Cagney <ac131313@ges.redhat.com>
To: Daniel Jacobowitz <drow@mvista.com>
Cc: gdb@sources.redhat.com
Subject: Re: RFC: Two small remote protocol extensions
Date: Tue, 27 Aug 2002 21:07:00 -0000 [thread overview]
Message-ID: <3D6C4C4E.4050409@ges.redhat.com> (raw)
In-Reply-To: <20020823201549.GB26809@nevyn.them.org>
> 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.
> 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).
Andrew
> 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''.
> But let's not try to design to that quite yet :)
:-)
next prev parent reply other threads:[~2002-08-28 4:07 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 [this message]
2002-08-28 6:33 ` Daniel Jacobowitz
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=3D6C4C4E.4050409@ges.redhat.com \
--to=ac131313@ges.redhat.com \
--cc=drow@mvista.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