diff options
| author | 2022-06-14 21:03:14 -0400 | |
|---|---|---|
| committer | 2022-06-14 21:06:23 -0400 | |
| commit | a7358ff1d4d4c6844b94d1cbe2b46ddf4d262cf7 (patch) | |
| tree | 3fe20253230a0f15628f502b40f547f60a64371d | |
| parent | Merge pull request #8461 from Morph1984/msvc-narrow-conv (diff) | |
| download | yuzu-a7358ff1d4d4c6844b94d1cbe2b46ddf4d262cf7.tar.gz yuzu-a7358ff1d4d4c6844b94d1cbe2b46ddf4d262cf7.tar.xz yuzu-a7358ff1d4d4c6844b94d1cbe2b46ddf4d262cf7.zip | |
kernel: notify debugger on break SVC
| -rw-r--r-- | src/core/hle/kernel/svc.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/core/hle/kernel/svc.cpp b/src/core/hle/kernel/svc.cpp index 584fa5b1c..d09de93a0 100644 --- a/src/core/hle/kernel/svc.cpp +++ b/src/core/hle/kernel/svc.cpp | |||
| @@ -15,6 +15,7 @@ | |||
| 15 | #include "common/scope_exit.h" | 15 | #include "common/scope_exit.h" |
| 16 | #include "core/core.h" | 16 | #include "core/core.h" |
| 17 | #include "core/core_timing.h" | 17 | #include "core/core_timing.h" |
| 18 | #include "core/debugger/debugger.h" | ||
| 18 | #include "core/hle/kernel/k_client_port.h" | 19 | #include "core/hle/kernel/k_client_port.h" |
| 19 | #include "core/hle/kernel/k_client_session.h" | 20 | #include "core/hle/kernel/k_client_session.h" |
| 20 | #include "core/hle/kernel/k_code_memory.h" | 21 | #include "core/hle/kernel/k_code_memory.h" |
| @@ -627,6 +628,12 @@ static void Break(Core::System& system, u32 reason, u64 info1, u64 info2) { | |||
| 627 | const auto thread_processor_id = current_thread->GetActiveCore(); | 628 | const auto thread_processor_id = current_thread->GetActiveCore(); |
| 628 | system.ArmInterface(static_cast<std::size_t>(thread_processor_id)).LogBacktrace(); | 629 | system.ArmInterface(static_cast<std::size_t>(thread_processor_id)).LogBacktrace(); |
| 629 | } | 630 | } |
| 631 | |||
| 632 | if (system.DebuggerEnabled()) { | ||
| 633 | auto* thread = system.Kernel().GetCurrentEmuThread(); | ||
| 634 | system.GetDebugger().NotifyThreadStopped(thread); | ||
| 635 | thread->RequestSuspend(Kernel::SuspendType::Debug); | ||
| 636 | } | ||
| 630 | } | 637 | } |
| 631 | 638 | ||
| 632 | static void Break32(Core::System& system, u32 reason, u32 info1, u32 info2) { | 639 | static void Break32(Core::System& system, u32 reason, u32 info1, u32 info2) { |