Other answers and comments on this question helped a lot. Here is what I did.
I notice that if I run the program in the Visual Studio debugger, it just ends silently, but if I run it without a debugger, it will work with the message field (a regular Windows message box that says that I lost my unsaved data, and everything is so sorry).
So, I launched the debug wihtout program, resolved it to crash, and then - while the message box was still there - connected the debugger and clicked "Break". Here's the call stack:
ntdll.dll!_KiFastSystemCallRet@0 () ntdll.dll!_ZwWaitForMultipleObjects@20 () + 0xc bytes kernel32.dll!_WaitForMultipleObjectsEx@20 () - 0x48 bytes kernel32.dll!_WaitForMultipleObjects@16 () + 0x18 bytes faultrep.dll!StartDWException() + 0x5df bytes faultrep.dll!ReportFault() + 0x533 bytes kernel32.dll!_UnhandledExceptionFilter@4 () + 0x55c bytes //SomeThirdPartyLibraryFunctionAddress //SomeThirdPartyLibraryFunctionAddress //SomeThirdPartyLibraryFunctionAddress //SomeThirdPartyLibraryFunctionAddress //OurCodeInvokingThirdPartyLibraryCode
so itβs obvious that there is some problem inside the trird-party library. According to MSDN, UnhandledExceptionFilter()
is called in fatal situations, and obviously the call is being executed due to some problem in the library code. Therefore, we first try to solve the problem with the library provider.
source share