diff options
Diffstat (limited to 'src/core/hle/kernel/svc.cpp')
| -rw-r--r-- | src/core/hle/kernel/svc.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/core/hle/kernel/svc.cpp b/src/core/hle/kernel/svc.cpp index 37e893c84..dbd35580e 100644 --- a/src/core/hle/kernel/svc.cpp +++ b/src/core/hle/kernel/svc.cpp | |||
| @@ -622,6 +622,7 @@ static void Break(Core::System& system, u32 reason, u64 info1, u64 info2) { | |||
| 622 | info2, has_dumped_buffer ? std::make_optional(debug_buffer) : std::nullopt); | 622 | info2, has_dumped_buffer ? std::make_optional(debug_buffer) : std::nullopt); |
| 623 | 623 | ||
| 624 | if (!break_reason.signal_debugger) { | 624 | if (!break_reason.signal_debugger) { |
| 625 | SchedulerLock lock(system.Kernel()); | ||
| 625 | LOG_CRITICAL( | 626 | LOG_CRITICAL( |
| 626 | Debug_Emulated, | 627 | Debug_Emulated, |
| 627 | "Emulated program broke execution! reason=0x{:016X}, info1=0x{:016X}, info2=0x{:016X}", | 628 | "Emulated program broke execution! reason=0x{:016X}, info1=0x{:016X}, info2=0x{:016X}", |
| @@ -633,9 +634,8 @@ static void Break(Core::System& system, u32 reason, u64 info1, u64 info2) { | |||
| 633 | const auto thread_processor_id = current_thread->GetProcessorID(); | 634 | const auto thread_processor_id = current_thread->GetProcessorID(); |
| 634 | system.ArmInterface(static_cast<std::size_t>(thread_processor_id)).LogBacktrace(); | 635 | system.ArmInterface(static_cast<std::size_t>(thread_processor_id)).LogBacktrace(); |
| 635 | 636 | ||
| 636 | system.Kernel().CurrentProcess()->PrepareForTermination(); | ||
| 637 | |||
| 638 | // Kill the current thread | 637 | // Kill the current thread |
| 638 | system.Kernel().ExceptionalExit(); | ||
| 639 | current_thread->Stop(); | 639 | current_thread->Stop(); |
| 640 | } | 640 | } |
| 641 | } | 641 | } |