summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/core/arm/dynarmic/arm_dynarmic_32.cpp2
-rw-r--r--src/core/arm/dynarmic/arm_dynarmic_64.cpp2
2 files changed, 4 insertions, 0 deletions
diff --git a/src/core/arm/dynarmic/arm_dynarmic_32.cpp b/src/core/arm/dynarmic/arm_dynarmic_32.cpp
index d4cbd0c20..054572445 100644
--- a/src/core/arm/dynarmic/arm_dynarmic_32.cpp
+++ b/src/core/arm/dynarmic/arm_dynarmic_32.cpp
@@ -70,11 +70,13 @@ public:
70 } 70 }
71 71
72 void InterpreterFallback(u32 pc, std::size_t num_instructions) override { 72 void InterpreterFallback(u32 pc, std::size_t num_instructions) override {
73 parent.LogBacktrace();
73 UNIMPLEMENTED_MSG("This should never happen, pc = {:08X}, code = {:08X}", pc, 74 UNIMPLEMENTED_MSG("This should never happen, pc = {:08X}, code = {:08X}", pc,
74 MemoryReadCode(pc)); 75 MemoryReadCode(pc));
75 } 76 }
76 77
77 void ExceptionRaised(u32 pc, Dynarmic::A32::Exception exception) override { 78 void ExceptionRaised(u32 pc, Dynarmic::A32::Exception exception) override {
79 parent.LogBacktrace();
78 LOG_CRITICAL(Core_ARM, 80 LOG_CRITICAL(Core_ARM,
79 "ExceptionRaised(exception = {}, pc = {:08X}, code = {:08X}, thumb = {})", 81 "ExceptionRaised(exception = {}, pc = {:08X}, code = {:08X}, thumb = {})",
80 exception, pc, MemoryReadCode(pc), parent.IsInThumbMode()); 82 exception, pc, MemoryReadCode(pc), parent.IsInThumbMode());
diff --git a/src/core/arm/dynarmic/arm_dynarmic_64.cpp b/src/core/arm/dynarmic/arm_dynarmic_64.cpp
index 6d5a1ecfd..7ff8f9495 100644
--- a/src/core/arm/dynarmic/arm_dynarmic_64.cpp
+++ b/src/core/arm/dynarmic/arm_dynarmic_64.cpp
@@ -81,6 +81,7 @@ public:
81 } 81 }
82 82
83 void InterpreterFallback(u64 pc, std::size_t num_instructions) override { 83 void InterpreterFallback(u64 pc, std::size_t num_instructions) override {
84 parent.LogBacktrace();
84 LOG_ERROR(Core_ARM, 85 LOG_ERROR(Core_ARM,
85 "Unimplemented instruction @ 0x{:X} for {} instructions (instr = {:08X})", pc, 86 "Unimplemented instruction @ 0x{:X} for {} instructions (instr = {:08X})", pc,
86 num_instructions, MemoryReadCode(pc)); 87 num_instructions, MemoryReadCode(pc));
@@ -118,6 +119,7 @@ public:
118 return; 119 return;
119 case Dynarmic::A64::Exception::Breakpoint: 120 case Dynarmic::A64::Exception::Breakpoint:
120 default: 121 default:
122 parent.LogBacktrace();
121 ASSERT_MSG(false, "ExceptionRaised(exception = {}, pc = {:08X}, code = {:08X})", 123 ASSERT_MSG(false, "ExceptionRaised(exception = {}, pc = {:08X}, code = {:08X})",
122 static_cast<std::size_t>(exception), pc, MemoryReadCode(pc)); 124 static_cast<std::size_t>(exception), pc, MemoryReadCode(pc));
123 } 125 }