aboutsummaryrefslogtreecommitdiff
path: root/src/core/arm/arm_interface.cpp
diff options
context:
space:
mode:
authorLiam <byteslice@airmail.cc>2022-12-01 22:48:43 -0500
committerLiam <byteslice@airmail.cc>2022-12-02 08:25:45 -0500
commit6072b22a0b9a1d84c389e8231fe4b6a97e60d55f (patch)
tree13fd1e6ec07f4aff50f0bcb41fbb02fb2192ec87 /src/core/arm/arm_interface.cpp
parentdcc663e1bf72bb7dbe4f40abe8dd5a5f6dcd88a9 (diff)
core: add option to break on unmapped access
Diffstat (limited to 'src/core/arm/arm_interface.cpp')
-rw-r--r--src/core/arm/arm_interface.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/core/arm/arm_interface.cpp b/src/core/arm/arm_interface.cpp
index 29ba562dc..2df7b0ee8 100644
--- a/src/core/arm/arm_interface.cpp
+++ b/src/core/arm/arm_interface.cpp
@@ -145,11 +145,15 @@ void ARM_Interface::Run() {
// Notify the debugger and go to sleep if a breakpoint was hit,
// or if the thread is unable to continue for any reason.
if (Has(hr, breakpoint) || Has(hr, no_execute)) {
- RewindBreakpointInstruction();
+ if (!Has(hr, no_execute)) {
+ RewindBreakpointInstruction();
+ }
if (system.DebuggerEnabled()) {
system.GetDebugger().NotifyThreadStopped(current_thread);
+ } else {
+ LogBacktrace();
}
- current_thread->RequestSuspend(Kernel::SuspendType::Debug);
+ current_thread->RequestSuspend(SuspendType::Debug);
break;
}