diff options
author | bunnei <bunneidev@gmail.com> | 2019-04-06 05:46:37 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-04-06 05:46:37 +0200 |
commit | 54c7e8e40ed44a7331f5b8bf88bea866078fda51 (patch) | |
tree | 9e116ce7842b417ac2c8998a682efedb52ca6254 /src/core/arm | |
parent | Merge pull request #2346 from lioncash/header (diff) | |
parent | gdbstub: Fix some bugs in IsMemoryBreak() and ServeBreak. Add workaround to let watchpoints break into GDB. (#4651) (diff) | |
download | yuzu-54c7e8e40ed44a7331f5b8bf88bea866078fda51.tar yuzu-54c7e8e40ed44a7331f5b8bf88bea866078fda51.tar.gz yuzu-54c7e8e40ed44a7331f5b8bf88bea866078fda51.tar.bz2 yuzu-54c7e8e40ed44a7331f5b8bf88bea866078fda51.tar.lz yuzu-54c7e8e40ed44a7331f5b8bf88bea866078fda51.tar.xz yuzu-54c7e8e40ed44a7331f5b8bf88bea866078fda51.tar.zst yuzu-54c7e8e40ed44a7331f5b8bf88bea866078fda51.zip |
Diffstat (limited to 'src/core/arm')
-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 f313b7394..1e44f0736 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 |