[PATCH 0/5] Coalesce/aggregate (async) vCont packets/actions

Pedro Alves
2016-02-17T02:44:57Z

Since:

[PATCH 00/18] Remote all-stop on top of non-stop
https://www.sourceware.org/ml/gdb-patches/2015-10/msg00213.html

The remote target supports "maint set target-non-stop on". However
that's still not the default.

I thought I'd first try to aggregate vCont packets, because with
"maint set target-non-stop on", we go from:

- All-stop / "maint set target-non-stop off"

(gdb) c
Continuing.
(...)
Sending packet: $vCont;c#a8..

to:

- All-stop / "maint set target-non-stop on"

(gdb) c
Continuing.
(...)
Sending packet: $vCont;c:p2c45.2c45#7c...Packet received: OK
Sending packet: $vCont;c:p2c45.2c4f#ad...Packet received: OK
Sending packet: $vCont;c:p2c45.2c50#78...Packet received: OK
... one packet per thread ...

After the series, we'll get back:

(gdb) c
Continuing.
(...)
Sending packet: $vCont;c#a8...Packet received: OK

(Note the "OK", showing that that was indeed an async vCont resume.)

along with other "wildcard" vCont packets like, "vCont;s:p1.1;c".

Also pushed to the users/palves/vcont-coalesce-actions branch.

Pedro Alves (5):
gdb: Clean up remote.c:remote_resume
gdb: Free inferior->priv when inferior exits
gdb/doc: Clarify vCont packet description
gdbserver: Leave already-vCont-resumed threads as they were
gdb: Coalesce/aggregate (async) vCont packets/actions

gdb/doc/gdb.texinfo | 32 ++-
gdb/gdbserver/linux-low.c | 27 +++
gdb/gdbserver/server.c | 33 ++-
gdb/gdbserver/server.h | 4 +
gdb/inferior.c | 3 +
gdb/inferior.h | 6 +
gdb/infrun.c | 8 +
gdb/record-btrace.c | 11 +
gdb/record-full.c | 11 +
gdb/remote.c | 566 ++++++++++++++++++++++++++++++++++++++++------
gdb/target-delegates.c | 26 +++
gdb/target.c | 29 +++
gdb/target.h | 46 +++-
13 files changed, 705 insertions(+), 97 deletions(-)

--
1.9.3