If you try to debug any executable that throws a c++ exception, you get this result: ``` * thread #1, stop reason = Exception 0xc00000ff encountered at address 0x7fff44a181b0 frame #0: 0x00007fff44a181b0 ntdll.dll`RtlRaiseStatus + 32 ``` I even tried cdb, and got a similar result. After lots of searching I found [this post](https://github.com/LuaJIT/LuaJIT/issues/593#issuecomment-1717728494) detailing a deep analysis plus [solution](https://github.com/LuaJIT/LuaJIT/commit/7a1c139569874f371f567d060738a3f5704930a1) of the problem. I didn't test it, but I expect that a similar change like the following should fix this: ```diff --- a/libunwind/src/Unwind-seh.cpp +++ b/libunwind/src/Unwind-seh.cpp @@ -174,7 +174,7 @@ _GCC_specific_handler(PEXCEPTION_RECORD ms_exc, PVOID frame, PCONTEXT ms_ctx, } // FIXME: Indicate target frame in foreign case! // phase 2: the clean up phase - RtlUnwindEx(frame, (PVOID)disp->ControlPc, ms_exc, exc, ms_ctx, disp->HistoryTable); + RtlUnwindEx(frame, (PVOID)disp->ControlPc, ms_exc, exc, disp->ContextRecord, disp->HistoryTable); _LIBUNWIND_ABORT("RtlUnwindEx() failed"); case _URC_INSTALL_CONTEXT: { // If we were called by __libunwind_seh_personality(), indicate that ```