Browse Source
Merge pull request #8159 from merryhime/pst
dynarmic: Print stack trace on unrecognised instruction or other exception
pull/15/merge
Mai M
4 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with
4 additions and
0 deletions
-
src/core/arm/dynarmic/arm_dynarmic_32.cpp
-
src/core/arm/dynarmic/arm_dynarmic_64.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()); |
|
|
|
|
|
|
|
@ -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)); |
|
|
|
} |
|
|
|
|