diff options
author | Dimitri A <DimitriPilot3@users.noreply.github.com> | 2019-03-08 06:09:06 +0100 |
---|---|---|
committer | fearlessTobi <thm.frey@gmail.com> | 2019-03-15 16:31:06 +0100 |
commit | 0e7ad1c367d160ea9157a141e64bbc3dcc0420bb (patch) | |
tree | 8559b52ac7c8275b2cd8a742785041fa45af95e0 /src/core/arm/unicorn | |
parent | Merge pull request #2233 from ReinUsesLisp/morton-cleanup (diff) | |
download | yuzu-0e7ad1c367d160ea9157a141e64bbc3dcc0420bb.tar yuzu-0e7ad1c367d160ea9157a141e64bbc3dcc0420bb.tar.gz yuzu-0e7ad1c367d160ea9157a141e64bbc3dcc0420bb.tar.bz2 yuzu-0e7ad1c367d160ea9157a141e64bbc3dcc0420bb.tar.lz yuzu-0e7ad1c367d160ea9157a141e64bbc3dcc0420bb.tar.xz yuzu-0e7ad1c367d160ea9157a141e64bbc3dcc0420bb.tar.zst yuzu-0e7ad1c367d160ea9157a141e64bbc3dcc0420bb.zip |
Diffstat (limited to 'src/core/arm/unicorn')
-rw-r--r-- | src/core/arm/unicorn/arm_unicorn.cpp | 5 | ||||
-rw-r--r-- | src/core/arm/unicorn/arm_unicorn.h | 2 |
2 files changed, 4 insertions, 3 deletions
diff --git a/src/core/arm/unicorn/arm_unicorn.cpp b/src/core/arm/unicorn/arm_unicorn.cpp index a542a098b..27309280c 100644 --- a/src/core/arm/unicorn/arm_unicorn.cpp +++ b/src/core/arm/unicorn/arm_unicorn.cpp @@ -192,12 +192,13 @@ void ARM_Unicorn::ExecuteInstructions(int num_instructions) { CHECKED(uc_emu_start(uc, GetPC(), 1ULL << 63, 0, num_instructions)); core_timing.AddTicks(num_instructions); if (GDBStub::IsServerEnabled()) { - if (last_bkpt_hit) { + if (last_bkpt_hit && last_bkpt.type == GDBStub::BreakpointType::Execute) { uc_reg_write(uc, UC_ARM64_REG_PC, &last_bkpt.address); } + Kernel::Thread* thread = Kernel::GetCurrentThread(); SaveContext(thread->GetContext()); - if (last_bkpt_hit || GDBStub::GetCpuStepFlag()) { + if (last_bkpt_hit || GDBStub::IsMemoryBreak() || GDBStub::GetCpuStepFlag()) { last_bkpt_hit = false; GDBStub::Break(); GDBStub::SendTrap(thread, 5); diff --git a/src/core/arm/unicorn/arm_unicorn.h b/src/core/arm/unicorn/arm_unicorn.h index dbd6955ea..893e11388 100644 --- a/src/core/arm/unicorn/arm_unicorn.h +++ b/src/core/arm/unicorn/arm_unicorn.h @@ -50,7 +50,7 @@ private: uc_engine* uc{}; Timing::CoreTiming& core_timing; GDBStub::BreakpointAddress last_bkpt{}; - bool last_bkpt_hit; + bool last_bkpt_hit = false; }; } // namespace Core |