aboutsummaryrefslogtreecommitdiff
path: root/gdb/arm-nbsd-tdep.h
diff options
context:
space:
mode:
authorTankut Baris Aktemur <tankut.baris.aktemur@intel.com>2020-04-01 16:57:39 +0200
committerTankut Baris Aktemur <tankut.baris.aktemur@intel.com>2020-04-01 16:57:39 +0200
commite139a727be23643702eecbbcaa9c590cc680e3d7 (patch)
treecff4fa8ff5d4b43def31d24c51f97669185cf8af /gdb/arm-nbsd-tdep.h
parente0802d59969339502203ad8e0d161b5f93beca73 (diff)
downloadgdb-e139a727be23643702eecbbcaa9c590cc680e3d7.zip
gdb-e139a727be23643702eecbbcaa9c590cc680e3d7.tar.gz
gdb-e139a727be23643702eecbbcaa9c590cc680e3d7.tar.bz2
gdb/remote: do not check for null_ptid in stop reply
A gdbserver does not report a ptid in a 'W' or 'X' packet if multi-process extensions are not supported or turned off. See https://sourceware.org/gdb/current/onlinedocs/gdb/General-Query-Packets.html#multiprocess-extensions https://sourceware.org/gdb/current/onlinedocs/gdb/Stop-Reply-Packets.html#Stop-Reply-Packets GDB's remote packet parser checks for whether a stop-reply packet contains a ptid if the target is non-stop, and issues an error if no ptid is included: if (target_is_non_stop_p () && event->ptid == null_ptid) error (_("No process or thread specified in stop reply: %s"), buf); This leads to the following error when the non-stop mode is turned on but multi-process extensions are off: $ gdb (gdb) set non-stop on (gdb) set remote multiprocess-feature-packet off (gdb) target remote | gdbserver - ./foo Remote debugging using | gdbserver - ./foo stdin/stdout redirected Process ./foo created; pid = 3712 ... (gdb) continue Continuing. ... No process or thread specified in stop reply: W2a (gdb) Because the check is done for stop reply packets in general, a similar situation occurs if the 'T' or 'Tthread' packet is disabled in gdbserver (i.e. via --disable-packet=T). E.g: $ gdb (gdb) set non-stop on (gdb) target remote | gdbserver --disable-packet=Tthread - ./foo ... No process or thread specified in stop reply: T0506:0000000000000000;07:10e2ffffff7f0000;10:9060ddf7ff7f0000; or $ gdb (gdb) set non-stop on (gdb) target remote | gdbserver --disable-packet=T - ./foo ... No process or thread specified in stop reply: S05 The commit commit cada5fc921e39a1945c422eea055c8b326d8d353 Date: Wed Mar 11 12:30:13 2020 +0000 gdb: Handle W and X remote packets without giving a warning and its predecessor commit 24ed6739b699f329c2c45aedee5f8c7d2f54e493 Date: Thu Jan 30 14:35:40 2020 +0000 gdb/remote: Restore support for 'S' stop reply packet added warnings for when GDB has to make a guess for a missing ptid in case of multiple threads/inferiors. These warnings should suffice. So, the simple solution is to remove the check completely. Regression-tested on X86_64 Linux. gdb/ChangeLog: 2020-04-01 Tankut Baris Aktemur <tankut.baris.aktemur@intel.com> * remote.c (remote_target::remote_parse_stop_reply): Remove the check for no ptid in the stop reply when the target is non-stop. gdb/testsuite/ChangeLog: 2020-04-01 Tankut Baris Aktemur <tankut.baris.aktemur@intel.com> * gdb.server/stop-reply-no-thread.exp: Enhance the test scenario to cover execution until the end and also the case when no packet is disabled when starting gdbserver.
Diffstat (limited to 'gdb/arm-nbsd-tdep.h')
0 files changed, 0 insertions, 0 deletions