gdbserver: Add mechanism to prevent sending T stop packets
authorAndrew Burgess <andrew.burgess@embecosm.com>
Fri, 28 Feb 2020 21:33:26 +0000 (21:33 +0000)
committerAndrew Burgess <andrew.burgess@embecosm.com>
Mon, 2 Mar 2020 15:06:35 +0000 (15:06 +0000)
commit442131c1bec1a2ff0b3a5e5d1d91a116ce869dee
treec3d01004ab2a2a458b61a1c7e0b8379a741ce9c4
parent590003dc0ea7653ead62899d850fba0a5c4a595e
gdbserver: Add mechanism to prevent sending T stop packets

There is a developer only feature in gdbserver that provides a
command line option --disable-packet that prevents some packets from
being sent, which is used to increase test coverage within GDB.

This commit extends this mechanism to prevent GDBserver from sending
the T stop reply packets, instead limiting GDBserver to only send the
S stop reply packets.

The S stop reply packet is part of the older target control mechanism,
which has design flaws that were worked around with the introduction
of the newer target control mechanism, which uses the T stop reply
packet.

Limiting GDBserver to use S stop packets instead of T stop packets
will, inevitably, mean that GDBserver doesn't function correctly in
many cases involving multiple threads, however, I don't think this is
too important, this is a developer only feature, intended to allow us
to test GDB.

A new test that makes use of this feature will be added in the next
commit.

gdbserver/ChangeLog:

* remote-utils.cc (prepare_resume_reply): Add ability to convert T
reply into an S reply.
* server.cc (disable_packet_T): New global.
(captured_main): Set new global when appropriate.
* server.h (disable_packet_T): Declare.
gdbserver/ChangeLog
gdbserver/remote-utils.cc
gdbserver/server.cc
gdbserver/server.h