本文主要介紹C++開發過程中出現程序崩潰後,如何進行分析定位bug(基於xp系統)。
壹、DMP文件獲取設置
(1)在運行窗口中輸入 drwtsn32 -i ,並且點擊確定
WinDbg分析DMP文件方法完全攻略
(2)在(1)確定後彈出如下對話框
WinDbg分析DMP文件方法完全攻略
(3)在(2)彈出的確定框後點擊確定按鈕完成,將Dr.Watson設置為默認應用程序調試程序。
Dr.Watson系統自帶的程序。
(4)再次在運行窗口中輸入:drwtsn32,如下圖:
WinDbg分析DMP文件方法完全攻略
(5)點擊確定按鈕,在彈出的對話框中按照下列方式設置
WinDbg分析DMP文件方法完全攻略
(6) 點擊確定按鈕完成DMP文件設置。
二、關閉Dr.Watson方法
(1)打開註冊表
(2)在註冊表中進入主鍵[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\AeDebug],然後將“AUTO”鍵值設置為0如下圖:
WinDbg分析DMP文件方法完全攻略
三、Windbg下載地址
/en-us/windows/hardware/gg463009.aspx,下載完成後安裝
四、DMP文件獲取
(1) 用vs2010創建壹個基於win32的程序,其源碼如下:
WinDbg分析DMP文件方法完全攻略
(2)我們知道在學習C++中整數不能跟0進行除運算,否則會引起程序崩潰。而(1)中就是編寫能觸發0的異常,導致程序結束運行的程序。編譯(1)中的程序,結果如下:
WinDbg分析DMP文件方法完全攻略
(3)運行(2)中test.exe程序 ,程序崩潰。如下圖:
WinDbg分析DMP文件方法完全攻略
(4) 按照《壹、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文件。
五、分析《四、DMP文件獲取》中獲取的DMP文件