DMP文件的生成和使用
|
1、生成dmp的程序 #include<dbghelp.h> //設置異常處理回調函數 //異常處理代碼 if (hFile!=INVALID_HANDLE_VALUE) ExInfo.ThreadId= ::GetCurrentThreadId(); // write the dump theApp.PostThreadMessage(WM_QUIT,0,0); 2、調試dump文件 1)用windbg。 2)用vc,把dmp文件和exe, pdb文件放在同一目錄下, 然后用編譯器(如vc)打開, 然后開始調試就會中斷到剛才中斷的地方. 3、以下是網上搜集到的條件,尚未驗證是否是必需的,如果不能正確的生成dmp,可嘗試以下方法 1)SetUnhandledExceptionFilter()并不能處理所有的異常,比如CRT異常需要調用_set_invalid_parameter_handler()才行 1)要設置c運行庫異常處理函授。這樣當出錯后,會引發你的異常處理,你的處理中,可以直接丟掉或重新啟動你的exe,或寫入log文件。 2)注意生成的release應用程序需要開啟“生成調試信息”選項。 2)使用VS2008的話,不需要開啟“生成調試信息”選項就可以生成的。 3)編譯release版本的時候同時生成map文件,具體可以在網上查找一下關于map文件的使用方法。 3)生成可執行文件時在工程屬性設置里的“調試”選項里將“生成映射文件”設置為“是”。這主要是用來在出錯時通過dump和map文件對錯誤定位。 4、其他工具 1)生成dump文件需要Dr.Watson,它是Windows自帶的調試工具,只要對它進行了設置,程序出錯后就可以在相應目錄下找到dump文件。可參見如下資料:http://hi.baidu.com/mryongzhang/blog/item/11a774edf9b513d72e2e2167.html 2)adplus是最有用的工具,http://support.microsoft.com/kb/286350/ |
總結
以上是生活随笔為你收集整理的DMP文件的生成和使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 爬虫为什么使用asyncio以及邮件系统
- 下一篇: css 实现播放按钮