]> git.proxmox.com Git - mirror_qemu.git/commitdiff
AArch64: Fix single stepping of ERET instruction
authorJaroslaw Pelczar <j.pelczar@samsung.com>
Thu, 14 Sep 2017 17:43:18 +0000 (18:43 +0100)
committerPeter Maydell <peter.maydell@linaro.org>
Thu, 14 Sep 2017 17:43:18 +0000 (18:43 +0100)
Previously when single stepping through ERET instruction via GDB
would result in debugger entering the "next" PC after ERET instruction.
When debugging in kernel mode, this will also cause unintended behavior,
because debugger will try to access memory from EL0 point of view.

Signed-off-by: Jaroslaw Pelczar <j.pelczar@samsung.com>
Message-id: 001c01d32895$483027f0$d89077d0$@samsung.com
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
target/arm/translate-a64.c

index 9017e30510ce045e8eee0057ecfb5eea4c05bb4e..1bc12d93ca8a4bf368eea05518e1aa03244e61e0 100644 (file)
@@ -11348,6 +11348,7 @@ static void aarch64_tr_tb_stop(DisasContextBase *dcbase, CPUState *cpu)
         default:
             gen_a64_set_pc_im(dc->pc);
             /* fall through */
+        case DISAS_EXIT:
         case DISAS_JUMP:
             if (dc->base.singlestep_enabled) {
                 gen_exception_internal(EXCP_DEBUG);