Re: new gdb remote packet type

Daniel Jacobowitz
2004-05-12T18:31:00Z

On Wed, May 12, 2004 at 02:20:36PM -0400, Andrew Cagney wrote:
> Yes, this is the key, use it conditionally, nice.
>
> >+ switch (remote_protocol_p.support)
> >+ {
> >+ case PACKET_DISABLE:
> >+ break;
> >+ case PACKET_ENABLE:
> >+ if (fetch_register_using_p (regnum))
> >+ return;
> >+ else
> >+ error ("Protocol error: p packet not recognized by stub");
> >+ case PACKET_SUPPORT_UNKNOWN:
> >+ if (fetch_register_using_p (regnum))
> >+ {
> >+ /* The stub recognized the 'p' packet. Remember this. */
> >+ remote_protocol_p.support = PACKET_ENABLE;
> >+ return;
> >+ }
> >+ else
> >+ {
> >+ /* The stub does not support the 'P' packet. Use 'G'
> >+ instead, and don't try using 'P' in the future (it
> >+ will just waste our time). */
> >+ remote_protocol_p.support = PACKET_DISABLE;
> >+ break;
> >+ }
> >+ }
> >
> > sprintf (buf, "g");

This patch (if 'p' were implemented for gdbserver; I have this lying
around, as it happens) would make register fetches default to using
individual 'p' packets for every register; this would hurt latency, a
lot.

Robert, wouldn't it be good enough for you to work with
!reg->in_g_packet?

--
Daniel Jacobowitz