本文主要介紹了C++開發過程中程序崩潰後如何分析和定位bug(基於xp系統)。
壹、DMP文件采集設置
(1)在“運行”窗口中輸入drwtsn32 -i,然後單擊“確定”。
WinDbg分析DMP文件方法全攻略
(2)確認(1)後,將彈出以下對話框。
WinDbg分析DMP文件方法全攻略
(3)在(2)中彈出的確定框後單擊確定按鈕完成操作,並將Dr.Watson設置為默認的應用程序調試器。
華生醫生自己的程序。
(4)在運行窗口中再次輸入drwtsn32,如下圖所示:
WinDbg分析DMP文件方法全攻略
(5)單擊“確定”按鈕,並在彈出的對話框中按以下方式進行設置。
WinDbg分析DMP文件方法全攻略
(6)單擊確定完成DMP文件設置。
其次,關閉Dr.Watson方法
(1)打開註冊表
(2)在註冊表中輸入主鍵【HKEY本地機器\軟件\微軟\ Windows NT \當前版本\ AEdebug】,然後將鍵值“AUTO”設置為0,如下所示:
WinDbg分析DMP文件方法全攻略
第三,Windbg下載,下載後安裝。
第四,DMP檔案采集
(1)用vs2010創建壹個基於win32的程序,其源代碼如下:
WinDbg分析DMP文件方法全攻略
(2)我們知道在學習C++時整數不能與0除運算,否則程序會崩潰。而(1)是壹個可以觸發異常0並導致程序停止運行的程序。編譯(1)中的程序,結果如下:
WinDbg分析DMP文件方法全攻略
(3)運行(2)中的test.exe程序,程序崩潰。如下圖所示:
WinDbg分析DMP文件方法全攻略
④按照“1。DMP文件采集設置”中,Dr.Watson被設置為默認的應用程序調試器。
(5)再次運行(2)中的test.exe程序,如下所示:
WinDbg分析DMP文件方法全攻略
單擊確定完成dmp文件的生成。
(6)打開在(4)中設置的dmp文件路徑。(本例中的默認地址為:c:\ documents and settings \ all users \ application data \ Microsoft \ dr . Watson),如下所示:
WinDbg分析DMP文件方法全攻略
其中,user.dmp就是我們需要的dmp文件。
5.分析在“4。獲取DMP檔案”。