[remote protocol] step range?

Michael Snyder msnyder@vmware.com
Sun Sep 7 00:35:00 GMT 2008

Daniel Jacobowitz wrote:
> On Fri, Sep 05, 2008 at 05:16:15PM -0700, Jason Molenda wrote:
>> For what it's worth we use the remote protocol for debugging applications
>> on the iPhone / iPod Touch devices.  When we first got it up and running,
>> we saw command-line level "step" commands taking multiple (4-5!) seconds
>> to complete.  We optimized it to no end and got this down to something
>> like .2 seconds without doing anything too weird to the protocol.  We
>> didn't have any single-instruction-step feature so we didn't even consider
>> trying to push range-stepping down to the device.
> I find this somewhat surprising - you don't need nearly as much of a
> disassembler to do this for ARM as it sounds like from your comments.
> I've written the code at least twice now, and for pre-Thumb-2 targets
> it's quite straightforward.  And it saves enough round trips to be
> a win, as long as you have somewhere closer to the target that can run
> it.
>> Since we've established that you must have single-instruction-step
>> capability in the target to do this, I think it's safe to assume that
>> only the current continue thread will execute.
> Well, in hosted environments the hardware single step bit is often
> context-switched; e.g. %eflags.  Or in multi-core systems there may
> actually be one per 'thread'.

Well you know, guys, it's always optional for a target
to implement a new protocol command.  If there's a target
for which this would be hard, or wouldn't gain you much,
you can always leave it un-implemented.

More information about the Gdb mailing list