在程序調試崩潰之後,我在我的Temp目錄中留下堆轉儲* .mdmp文件& appcompat.txt。我明白,appcompat.txt是一個錯誤報告。 是否有描述該軟件格式?程序崩潰 - 如何閱讀appcompat.txt?
我的appcompat.txt列出了許多DLL。我是否正確地認爲崩潰的原因可能只來自列出的某個DLL? 我可以限制我的調試工作到appcompat.txt中列出的DLL嗎?
提前感謝!
在程序調試崩潰之後,我在我的Temp目錄中留下堆轉儲* .mdmp文件& appcompat.txt。我明白,appcompat.txt是一個錯誤報告。 是否有描述該軟件格式?程序崩潰 - 如何閱讀appcompat.txt?
我的appcompat.txt列出了許多DLL。我是否正確地認爲崩潰的原因可能只來自列出的某個DLL? 我可以限制我的調試工作到appcompat.txt中列出的DLL嗎?
提前感謝!
的轉儲文件是迄今爲止診斷死機更多的信息:
_NT_SYMBOL_PATH
指向Microsoft symbol serverWindbg
,做File -> Open Crash Dump
並找到.dmp
或.mdmp
文件!analyze -v
。這將嘗試隔離崩潰的位置。請注意,僅僅因爲在特定的dll中發生了崩潰,並不意味着這是該bug所在的位置 - 這可能是因爲從應用程序代碼中傳入了一個無效的參數。分析應該有希望向你展示一個有意義的堆棧和一個錯誤代碼,這將有助於確定崩潰的實際原因。
謝謝,我安裝了這個程序,但是我沒有看到比在VS打開的小型轉儲器更多的信息。大多數調用堆棧函數現在都有名稱,但我不知道究竟發生了什麼故障。如果我要調試的EXE使用QT&boost,我是否需要兩者的調試符號(和源文件)? –
是的,您需要調試符號才能獲得任何有意義的碰撞分析。這是你自己創建的應用程序嗎?請注意,您需要創建應用程序時創建的* exact * pdb文件。僅僅從相同的來源構建是不夠的。 –
Woof,我需要v4.6.2(這不是最新的&我沒有在我的機器上構建Qt)的Qt源代碼和pdb文件,除了一些其他稍微過時的資源,例如boost和OpenInventor。如果我設法將所有這些結合在一起並進行有意義的調試,我會讓你知道! Thx爲您的答覆! –
它應該列出你的進程使用的所有DLL。所以不,對於限制並不完全有用。 –
除非你親自編寫這些DLL,否則它們中的任何一個都不會導致問題。你有沒有嘗試在Visual Studio中打開小型轉儲? – molbdnilo
@molbdnilo事實上,我自己編寫了一些DLL,其餘的都是由我的同事編寫的,但是發生崩潰的部分恰恰在外部代碼中,我沒有任何源代碼或調試數據庫。小型轉儲沒有源代碼附加到它,所以它只能顯示我的反彙編,這是,你會同意,非常沒有信息。 –