From: Michael Snyder <msnyder@vmware.com>
To: Jason Molenda <jmolenda@apple.com>
Cc: "gdb@sourceware.org" <gdb@sourceware.org>
Subject: Re: [remote protocol] step range?
Date: Fri, 05 Sep 2008 02:39:00 -0000 [thread overview]
Message-ID: <48C09B98.3010506@vmware.com> (raw)
In-Reply-To: <61DDBF42-6D9B-4E8C-9B0C-CB9BB68F5F11@apple.com>
Hey Jason! ;-)
Jason Molenda wrote:
> On Sep 4, 2008, at 3:14 PM, Michael Snyder wrote:
>
>> What about a remote protocol command that says
>> "single step until you leave the range <begin> - <end>".
>
> I wouldn't imagine any problem with such a packet - but it won't be
> useful on architectures that have variable length instructions (even
> ARM with its mix of ARM and Thumb opcodes) that don't have a hardware-
> supported single-instruction-step capability. Your remote driver
> would need to contain a disassembler in those cases to do anything
> useful.
I don't think that's necessarily true -- the remote agent
could just do what gdb does, single-step repeatedly and
check the stop pc against the range.
The idea is just to reduce the number of back-and-forth
transactions (but as it so happens, I'm playing with a
target where it would be a *huge* win.)
> There is a lot of overhead and unnecessary communication over a
> typical remote protocol connection that you can eliminate with some
> effort. But if the problem you're trying to solve is on a platform
> where single-instruction stepping is easy for the remote driver to do,
> this could be a reasonable alternate approach. I suppose the most
> complicated thing you'd have to worry about is a remote target that
> has multiple threads, with those threads executing when you're trying
> to step through that range, and one of the other threads hitting a
> breakpoint or getting a signal.
Well, if the remote can deal with threads at all (eg. gdbserver),
then it could probably treat this just as gdb would. A preemptive
stop in another thread would be outside the step range, therefore
we would tell gdb that we stopped.
This was, incidentally, the issue that the last thread on this
subject stalled on. But I don't see why it isn't soluble...
next prev parent reply other threads:[~2008-09-05 2:39 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-09-04 22:15 Michael Snyder
2008-09-05 0:12 ` Jason Molenda
2008-09-05 2:39 ` Michael Snyder [this message]
2008-09-06 0:17 ` Jason Molenda
2008-09-06 1:09 ` Michael Snyder
2008-09-06 4:16 ` Daniel Jacobowitz
2008-09-07 0:35 ` Michael Snyder
2008-09-08 4:56 ` Daniel Jacobowitz
2008-09-05 2:32 ` 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=48C09B98.3010506@vmware.com \
--to=msnyder@vmware.com \
--cc=gdb@sourceware.org \
--cc=jmolenda@apple.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