From 0017aff7fb55cc4015843dc0bba8c808e34f8757 Mon Sep 17 00:00:00 2001 From: Jarek Syrylak Date: Fri, 27 Jul 2018 10:12:40 +0100 Subject: [PATCH] Use flag rather than instruction count to handle step mode. --- src/core/arm/unicorn/arm_unicorn.cpp | 2 +- src/core/core.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/core/arm/unicorn/arm_unicorn.cpp b/src/core/arm/unicorn/arm_unicorn.cpp index c5946611f1..8b6da233a2 100644 --- a/src/core/arm/unicorn/arm_unicorn.cpp +++ b/src/core/arm/unicorn/arm_unicorn.cpp @@ -237,7 +237,7 @@ void ARM_Unicorn::ExecuteInstructions(int num_instructions) { //} Kernel::Thread* thread = Kernel::GetCurrentThread(); SaveContext(thread->context); - if (last_bkpt_hit || (num_instructions == 1)) { + if (last_bkpt_hit || GDBStub::GetCpuStepFlag()) { last_bkpt_hit = false; GDBStub::Break(); GDBStub::SendTrap(thread, 5); diff --git a/src/core/core.cpp b/src/core/core.cpp index 595cf7fa24..4c6b81ed83 100644 --- a/src/core/core.cpp +++ b/src/core/core.cpp @@ -63,7 +63,6 @@ System::ResultStatus System::RunLoop(bool tight_loop) { // execute. Otherwise, get out of the loop function. if (GDBStub::GetCpuHaltFlag()) { if (GDBStub::GetCpuStepFlag()) { - GDBStub::SetCpuStepFlag(false); tight_loop = false; } else { return ResultStatus::Success; @@ -81,6 +80,7 @@ System::ResultStatus System::RunLoop(bool tight_loop) { if(GDBStub::IsServerEnabled()) { + GDBStub::SetCpuStepFlag(false); GDBStub::SetInstCacheValidity(true); }