summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMai M <mathew1800@gmail.com>2022-04-05 23:18:31 +0200
committerGitHub <noreply@github.com>2022-04-05 23:18:31 +0200
commite4c3565ebe2c6ba93dbc1e4dabe61ada6c48ad79 (patch)
tree87f9f282ba6c9450496ffb73f9937165f9120e70
parentMerge pull request #8158 from Tachi107/patch-1 (diff)
parentdynarmic: Print stack trace on unrecognised instruction or other exception (diff)
downloadyuzu-e4c3565ebe2c6ba93dbc1e4dabe61ada6c48ad79.tar
yuzu-e4c3565ebe2c6ba93dbc1e4dabe61ada6c48ad79.tar.gz
yuzu-e4c3565ebe2c6ba93dbc1e4dabe61ada6c48ad79.tar.bz2
yuzu-e4c3565ebe2c6ba93dbc1e4dabe61ada6c48ad79.tar.lz
yuzu-e4c3565ebe2c6ba93dbc1e4dabe61ada6c48ad79.tar.xz
yuzu-e4c3565ebe2c6ba93dbc1e4dabe61ada6c48ad79.tar.zst
yuzu-e4c3565ebe2c6ba93dbc1e4dabe61ada6c48ad79.zip
-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:
}
void InterpreterFallback(u32 pc, std::size_t num_instructions) override {
+ parent.LogBacktrace();
UNIMPLEMENTED_MSG("This should never happen, pc = {:08X}, code = {:08X}", pc,
MemoryReadCode(pc));
}
void ExceptionRaised(u32 pc, Dynarmic::A32::Exception exception) override {
+ parent.LogBacktrace();
LOG_CRITICAL(Core_ARM,
"ExceptionRaised(exception = {}, pc = {:08X}, code = {:08X}, thumb = {})",
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:
}
void InterpreterFallback(u64 pc, std::size_t num_instructions) override {
+ parent.LogBacktrace();
LOG_ERROR(Core_ARM,
"Unimplemented instruction @ 0x{:X} for {} instructions (instr = {:08X})", pc,
num_instructions, MemoryReadCode(pc));
@@ -118,6 +119,7 @@ public:
return;
case Dynarmic::A64::Exception::Breakpoint:
default:
+ parent.LogBacktrace();
ASSERT_MSG(false, "ExceptionRaised(exception = {}, pc = {:08X}, code = {:08X})",
static_cast<std::size_t>(exception), pc, MemoryReadCode(pc));
}