當前位置:編程學習大全網 - 源碼下載 - 如何用WinDbg分析MEMORY.DMP文件

如何用WinDbg分析MEMORY.DMP文件

在C++實際開發過程中,開發出來的程序,壹般情況下由開發人員進行單元測試,然後移交給測試人員進行測試。在開發人員測試出現的bug,我們可以直接在本地進行調試。如果測試人員測試出崩潰級別的bug,如果我們需要調試往往借助於vs提供的Remote Debugger工具進行遠程調試(關於vs2010遠程調試的方法,然是當程序在用戶手中出現崩潰此時我們可以采用Remote Debugger進行調試,但是如果此時開發人員無法直接去用戶現場調試,此時就需要用戶生成DMP文件,以便開發人員使用DMP文件進行分析。

本文主要介紹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文件

  • 上一篇:BBL(原油單位換算)詳細資料大全
  • 下一篇:詞語造句:用渲染造句(約30個)
  • copyright 2024編程學習大全網