Crashdump analyzing: CxxUnhandledExceptionFilter

若如初见. 提交于 2019-12-07 13:45:02

问题


I've got a crash minidump to analyze. My program is multithread Qt5 application. I'm not a debugging guru but usualy I can easily find place where program failed, but this time I can't. I opened dump file in Visual Studio 2010, clicked "Debug with native only" and it shows me where problem is: it is thread with location "__CxxUnhandledExceptionFilter". Call stack is like this:

msvcr100.dll()!_abort()
msvcr100.dll()!terminate()
program.exe!__CxxUnhandledExceptionFilter(_EXCEPTION_POINTERS * pPtrs)
KERNELBASE.dll!_UnhandledExceptionFilter()
ntdll.dll!__RtlUserThreadStart()
ntdll.dll!__RtlUserThreadStart()

I expected to see stack with program functions and Qt internal functions. But this call stack tells me nothing interesting. So please tell me what is the "ExceptionFilter"-thread and how can I find place where program failed actually?


回答1:


You are viewing the application at the point where the unhandled exception has already been caught by the default exception filter.

That is, you are not seeing the line where the exception occurred.

Unfortunately, this means the minidump likely contains no useful information.

You might try inspecting the _EXCEPTION_POINTERS structs, it might contain the EIP of the instruction that triggered the unhandled exception.

See the value of pPtrs->ExceptionRecord->ExceptionAddress, that should hold the EIP.

From MSDN:

ExceptionAddress: The address where the exception occurred.

To get the stack trace at the point where the exception occured, read http://support.microsoft.com/kb/313109.



来源:https://stackoverflow.com/questions/22716349/crashdump-analyzing-cxxunhandledexceptionfilter

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!