我有一個崩潰minidump來分析。我的程序是多線程Qt5應用程序。我不是一個調試大師,但通常我可以很容易地找到程序失敗的地方,但這次我不能。我在Visual Studio 2010中打開了轉儲文件,單擊「僅使用本機進行調試」,它向我展示了問題所在:它是位置爲「__CxxUnhandledExceptionFilter」的線程。調用堆棧是這樣的:Crashdump分析:CxxUnhandledExceptionFilter
msvcr100.dll()!_abort()
msvcr100.dll()!terminate()
program.exe!__CxxUnhandledExceptionFilter(_EXCEPTION_POINTERS * pPtrs)
KERNELBASE.dll!_UnhandledExceptionFilter()
ntdll.dll!__RtlUserThreadStart()
ntdll.dll!__RtlUserThreadStart()
我希望看到與程序功能和Qt內部函數的堆棧。但這個調用堆棧告訴我沒有什麼有趣的。所以請告訴我什麼是「ExceptionFilter」線程,我如何找到程序實際失敗的地方?
哇,你回答的太快了,謝謝:)異常地址指向kernelbase.dll,因爲我可以看到它是_RaiseException @ 16函數。它是內核故障嗎? – YuriM
@YuriM大聲笑,不太可能。您可能會將一些不正確的參數提供給WinApi函數或您調用的代碼。這些函數將執行健全性檢查,並在不喜歡數據的情況下拋出異常。你檢查了其餘的論點嗎?在結構中可能有調用堆棧的記錄。 – sashoalm
我會在下週晚些時候做的:) – YuriM