Re: Is stub support for the 's' packet optional or required?

Andrew Cagney
2003-02-18T02:39:15Z

> I've been told off-list that it is not required for a stub to
> implement support for the 's' packet. I was also told that the
> documenation is wrong in this regard. Specifically, it says:
>
> A stub is required to support the `g', `G', `m', `M', `c', and `s'
> commands. All other commands are optional.
>
> See
> http://sources.redhat.com/gdb/current/onlinedocs/gdb_32.html#SEC632
> and
> http://world.std.com/~qqi/download/protocol.txt
>
> (I often find the latter document to be the more useful of the two.)
>
> I'd like to get other opinions regarding this matter. Also, if it
> really is the case that stubs are NOT required to implement support
> for the 's' packet, then will all such stubs return the empty response
> which indicates that there is no support for that particular packet?

If GDB implements software single step, then the `s' packet is never
used. Consequently, requiring the unconditional implementation of "s"
makes little sense.

Note though that, while a target that doesn't support the "s" packet
should return "" instead of "T...". remote.c isn't exactly set up to
handle this - by the time it realizes it's got a problem it is a bit
late. The step-out-of-range code tried to address this but in the
process created querky resume semantics.

Andrew