From: Richard Henderson Date: Mon, 19 Jul 2021 01:12:12 +0000 (-1000) Subject: accel/tcg: Handle gdb singlestep in cpu_tb_exec X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=c9460d75c59fc6b6f110156e4c1035e9ae9bd611;p=qemu.git accel/tcg: Handle gdb singlestep in cpu_tb_exec Currently the change in cpu_tb_exec is masked by the debug exception being raised by the translators. But this allows us to remove that code. Signed-off-by: Richard Henderson --- diff --git a/accel/tcg/cpu-exec.c b/accel/tcg/cpu-exec.c index 5fd1ed3422..c9764c1325 100644 --- a/accel/tcg/cpu-exec.c +++ b/accel/tcg/cpu-exec.c @@ -383,6 +383,17 @@ cpu_tb_exec(CPUState *cpu, TranslationBlock *itb, int *tb_exit) cc->set_pc(cpu, last_tb->pc); } } + + /* + * If gdb single-step, and we haven't raised another exception, + * raise a debug exception. Single-step with another exception + * is handled in cpu_handle_exception. + */ + if (unlikely(cpu->singlestep_enabled) && cpu->exception_index == -1) { + cpu->exception_index = EXCP_DEBUG; + cpu_loop_exit(cpu); + } + return last_tb; }