當前位置:成語大全網 - 書法字典 - 如何分析記憶?DMP文件與WinDbg

如何分析記憶?DMP文件與WinDbg

在C++的實際開發過程中,開發的程序壹般由開發人員進行單元測試,然後交給測試人員進行測試。當開發人員測試bug時,我們可以直接在本地進行調試。如果測試人員測試到崩潰級別的bug,如果我們需要調試,我們通常會使用vs提供的遠程調試器工具進行遠程調試。但是,當程序在用戶手中崩潰時,我們可以使用遠程調試器進行調試。但是,如果開發人員此時不能直接在用戶站點進行調試,用戶需要生成DMP文件,以便開發人員可以使用DMP文件進行分析。

本文主要介紹了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檔案”。