aboutsummaryrefslogtreecommitdiff
path: root/src/core/hle/kernel/svc/svc_exception.cpp
diff options
context:
space:
mode:
authorliamwhite <liamwhite@users.noreply.github.com>2023-09-16 11:40:17 -0400
committerGitHub <noreply@github.com>2023-09-16 11:40:17 -0400
commit62d473305df295a3b8e955e6a2a05a1105ef893d (patch)
tree114ea862538652c81c14c282b81a29816fe5c2d1 /src/core/hle/kernel/svc/svc_exception.cpp
parent13d551846accd4e3f2a4f5ab9a5c5ab461f8ed1b (diff)
parent3ef9673360089b1729ff174eefad9195d8eaf97f (diff)
Merge pull request #11500 from liamwhite/debug-stuff
core: improve debug workflow
Diffstat (limited to 'src/core/hle/kernel/svc/svc_exception.cpp')
-rw-r--r--src/core/hle/kernel/svc/svc_exception.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/core/hle/kernel/svc/svc_exception.cpp b/src/core/hle/kernel/svc/svc_exception.cpp
index 580cf2f75..c581c086b 100644
--- a/src/core/hle/kernel/svc/svc_exception.cpp
+++ b/src/core/hle/kernel/svc/svc_exception.cpp
@@ -3,6 +3,7 @@
#include "core/core.h"
#include "core/debugger/debugger.h"
+#include "core/hle/kernel/k_process.h"
#include "core/hle/kernel/k_thread.h"
#include "core/hle/kernel/svc.h"
#include "core/hle/kernel/svc_types.h"
@@ -107,7 +108,10 @@ void Break(Core::System& system, BreakReason reason, u64 info1, u64 info2) {
system.ArmInterface(static_cast<std::size_t>(thread_processor_id)).LogBacktrace();
}
- if (system.DebuggerEnabled()) {
+ const bool is_hbl = GetCurrentProcess(system.Kernel()).IsHbl();
+ const bool should_break = is_hbl || !notification_only;
+
+ if (system.DebuggerEnabled() && should_break) {
auto* thread = system.Kernel().GetCurrentEmuThread();
system.GetDebugger().NotifyThreadStopped(thread);
thread->RequestSuspend(Kernel::SuspendType::Debug);