diff --git a/External/FEXCore/Source/Interface/Core/Dispatcher/Dispatcher.cpp b/External/FEXCore/Source/Interface/Core/Dispatcher/Dispatcher.cpp index 73cc7bf2b..5f0eed5cd 100644 --- a/External/FEXCore/Source/Interface/Core/Dispatcher/Dispatcher.cpp +++ b/External/FEXCore/Source/Interface/Core/Dispatcher/Dispatcher.cpp @@ -274,6 +274,12 @@ bool Dispatcher::HandleGuestSignal(int Signal, void *info, void *ucontext, Guest switch (Signal) { case SIGSEGV: case SIGBUS: + // Macro expansion to get the si_addr + // This is the address trying to be accessed, not the RIP + guest_siginfo->_sifields._sigfault.addr = static_cast(reinterpret_cast(HostSigInfo->si_addr)); + break; + case SIGFPE: + case SIGILL: // Macro expansion to get the si_addr // Can't really give a real result here. Pull from the context for now guest_siginfo->_sifields._sigfault.addr = Frame->State.rip;