From: Nicholas Piggin <npig...@gmail.com>

The final part of the reverse step and break handling is to bring
the machine back to a debug stop state. gdb expects a response.

A gdb 'rsi' command hangs forever because the gdbstub filters out
the response (also observable with reverse_debugging.py avocado
tests).

Fix by setting allow_stop_reply for the gdb backward packets.

Fixes: 758370052fb ("gdbstub: only send stop-reply packets when allowed to")
Cc: qemu-sta...@nongnu.org
Cc: Matheus Tavares Bernardino <quic_mathb...@quicinc.com>
Cc: Alex Bennée <alex.ben...@linaro.org>
Cc: Taylor Simpson <tsimp...@quicinc.com>
Signed-off-by: Nicholas Piggin <npig...@gmail.com>
Acked-by: Matheus Tavares Bernardino <quic_mathb...@quicinc.com>
Message-Id: <20230623035304.279833-1-npig...@gmail.com>
Signed-off-by: Alex Bennée <alex.ben...@linaro.org>
---
 gdbstub/gdbstub.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/gdbstub/gdbstub.c b/gdbstub/gdbstub.c
index be18568d0a..9496d7b175 100644
--- a/gdbstub/gdbstub.c
+++ b/gdbstub/gdbstub.c
@@ -1814,6 +1814,7 @@ static int gdb_handle_packet(const char *line_buf)
                 .handler = handle_backward,
                 .cmd = "b",
                 .cmd_startswith = 1,
+                .allow_stop_reply = true,
                 .schema = "o0"
             };
             cmd_parser = &backward_cmd_desc;
-- 
2.39.2


Reply via email to