From: KONRAD Frederic <fred.kon...@greensocs.com> This allows QEMU to trigger a debug exception when rexec_dbg_requested is set.
Signed-off-by: KONRAD Frederic <fred.kon...@greensocs.com> --- cpu-exec.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/cpu-exec.c b/cpu-exec.c index 38e5f02..82e2568 100644 --- a/cpu-exec.c +++ b/cpu-exec.c @@ -22,6 +22,7 @@ #include "tcg.h" #include "qemu/atomic.h" #include "sysemu/qtest.h" +#include "reverse-execution.h" void cpu_loop_exit(CPUState *cpu) { @@ -230,6 +231,18 @@ int cpu_exec(CPUArchState *env) /* This must be volatile so it is not trashed by longjmp() */ volatile bool have_tb_lock = false; + #ifndef CONFIG_USER_ONLY + if (rexec_is_enabled() && rexec_dbg_requested()) { + /* + * Reverse execution need to stop right now. + * So just generate a EXCP_DEBUG. + */ + cpu->exception_index = EXCP_DEBUG; + cpu_handle_debug_exception(env); + return EXCP_DEBUG; + } + #endif /* !CONFIG_USER_ONLY */ + if (cpu->halted) { if (!cpu_has_work(cpu)) { return EXCP_HALTED; -- 1.9.0