gdbstub: more fixes for client Ctrl-C handling
The original fix caused problems with spurious characters on other system emulation. So: - instead of spamming output make the warning a trace point - ensure we only allow a stop reply if it was 0x3 Suggested-by: Matheus Tavares Bernardino <quic_mathbern@quicinc.com> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Message-Id: <456ed3318421dd7946bdfb5ceda7e05332da368c.1690910333.git.quic_mathbern@quicinc.com> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Tested-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Message-Id: <20230810153640.1879717-8-alex.bennee@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
parent
dad1036f43
commit
3869eb7eee
@ -2059,9 +2059,10 @@ void gdb_read_byte(uint8_t ch)
|
||||
* here, but it does expect a stop reply.
|
||||
*/
|
||||
if (ch != 0x03) {
|
||||
warn_report("gdbstub: client sent packet while target running\n");
|
||||
trace_gdbstub_err_unexpected_runpkt(ch);
|
||||
} else {
|
||||
gdbserver_state.allow_stop_reply = true;
|
||||
}
|
||||
gdbserver_state.allow_stop_reply = true;
|
||||
vm_stop(RUN_STATE_PAUSED);
|
||||
} else
|
||||
#endif
|
||||
|
@ -26,6 +26,7 @@ gdbstub_err_invalid_repeat(uint8_t ch) "got invalid RLE count: 0x%02x"
|
||||
gdbstub_err_invalid_rle(void) "got invalid RLE sequence"
|
||||
gdbstub_err_checksum_invalid(uint8_t ch) "got invalid command checksum digit: 0x%02x"
|
||||
gdbstub_err_checksum_incorrect(uint8_t expected, uint8_t got) "got command packet with incorrect checksum, expected=0x%02x, received=0x%02x"
|
||||
gdbstub_err_unexpected_runpkt(uint8_t ch) "unexpected packet (0x%02x) while target running"
|
||||
|
||||
# softmmu.c
|
||||
gdbstub_hit_watchpoint(const char *type, int cpu_gdb_index, uint64_t vaddr) "Watchpoint hit, type=\"%s\" cpu=%d, vaddr=0x%" PRIx64 ""
|
||||
|
Loading…
Reference in New Issue
Block a user