gdbstub: use a better signal when we halt for IO reasons

The gdb description GDB_SIGNAL_IO is "I/O possible" and by default gdb
will try and restart the guest, getting us nowhere. Report
GDB_SIGNAL_STOP instead which should at least halt the session at the
failure point.

Reviewed-by: Luis Machado <luis.machado@arm.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20231201093633.2551497-2-alex.bennee@linaro.org>
This commit is contained in:
Alex Bennée 2023-12-01 09:36:27 +00:00
parent abf635ddfe
commit 5dcf6334ae
2 changed files with 2 additions and 1 deletions

View File

@ -24,6 +24,7 @@ enum {
GDB_SIGNAL_TRAP = 5, GDB_SIGNAL_TRAP = 5,
GDB_SIGNAL_ABRT = 6, GDB_SIGNAL_ABRT = 6,
GDB_SIGNAL_ALRM = 14, GDB_SIGNAL_ALRM = 14,
GDB_SIGNAL_STOP = 17,
GDB_SIGNAL_IO = 23, GDB_SIGNAL_IO = 23,
GDB_SIGNAL_XCPU = 24, GDB_SIGNAL_XCPU = 24,
GDB_SIGNAL_UNKNOWN = 143 GDB_SIGNAL_UNKNOWN = 143

View File

@ -183,7 +183,7 @@ static void gdb_vm_state_change(void *opaque, bool running, RunState state)
break; break;
case RUN_STATE_IO_ERROR: case RUN_STATE_IO_ERROR:
trace_gdbstub_hit_io_error(); trace_gdbstub_hit_io_error();
ret = GDB_SIGNAL_IO; ret = GDB_SIGNAL_STOP;
break; break;
case RUN_STATE_WATCHDOG: case RUN_STATE_WATCHDOG:
trace_gdbstub_hit_watchdog(); trace_gdbstub_hit_watchdog();