Merge pull request #8159 from merryhime/pst
dynarmic: Print stack trace on unrecognised instruction or other exception
This commit is contained in:
		@@ -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));
 | 
			
		||||
        }
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user