WinDbg分析dump檔案介紹

2021-08-13 03:51:32 字數 1570 閱讀 6188

1、windbg介紹

windbg是微軟開發的免費源**級的除錯工具。windbg可以用於kernel模式除錯和使用者模式除錯,還可以除錯dump檔案。具體介面見下圖(圖1)

圖1:主窗體介面

2、windbg 分析dump步驟

2.1 、windbg分析dump檔案基本上試通過命令的方式,所以先介紹幾個相關命令。

1)!analyze : 擴充套件顯示當前異常或bug的資訊。一般使用!analyze -v

2) kv : 顯示棧資訊

3) ub : 向前反彙編,例如: ub (位址) 反彙編當前位址之前的兩條指令 

4) u  :  反彙編,例如: u (位址) 反彙編當前位址以後的9條指令

5) uf  : 反彙編函式

5) .exr:  檢視exception_record資訊

6)  .cls  : 清屏

2.2、開啟dump格式檔案

方式一:通過選單【file】 -> 【open crash dump】 選擇dump檔案開啟,

圖2:開啟dumpe檔案

圖3:開啟後會列印一些dump的資訊

方式二:通過cmd開啟dos命令視窗,切換到windbg所在目錄,利用命令:windbg –z 「d:/lines2009-7-25-22-20-33-900.dmp」

這裡只介紹第一種方式操作。

2.3、新增symbol path(符號路徑)

分析dump檔案需要依賴pdb檔案,所以這裡的符號路徑就是pdb檔案所在的路徑,如下圖(圖4),新增方式與新增作業系統的path路徑的方式一樣。

圖4:(新增符號路徑)

2.3、執行命令

圖52.3.1  執行 !analyze –v, 分析dump檔案,結果如下圖(圖6)

圖6該結果比較重要的部分是 exception_record 塊。

// 崩潰時的異常記錄,可以使用.exr檢視

exception_record: ffffffff -- (.exr 0xffffffffffffffff)

// 崩潰時所執行的函式位址

exceptionaddress: 59c6f0d3 (gbq_custom_heilongjiang!gbqheilongjiangafterfilljobserviceplugin::fillnormdbsearchscope+0x000003b3)

exceptioncode: c0000005 (access violation)

exceptionflags: 00000000

// 附加異常碼

numberparameters: 2

parameter[0]:00000000

parameter[1]:00000000

attempt to read from address 00000000  //

關鍵資訊

2.3.2  執行 kv ,顯示棧資訊

u 59c6f0d3 這時可以詳細看到崩潰的地方。

ps:像這樣的問題用vs可能看不出具體那裡出現問題如下圖:

windbg分析dump檔案

1 開啟dump格式檔案 開啟windbg,通過選單 file open crash dump 選擇dump檔案開啟,也可通過cmd開啟dos命令視窗,切換到windbg所在目錄,利用命令 windbg z d lines2009 7 25 22 20 33 900.dmp z表示路徑 圖1.1 利...

windbg分析dump檔案

1 開啟dump格式檔案 開啟windbg,通過選單 file open crash dump 選擇dump檔案開啟,也可通過cmd開啟dos命令視窗,切換到windbg所在目錄,利用命令 windbg z d lines2009 7 25 22 20 33 900.dmp z表示路徑 圖1.1 利...

Windbg分析Dump檔案

windbg是微軟發布的一款相當優秀的原始碼級除錯工具,可以用於kernel模式除錯和使用者模式除錯,還可以除錯dump檔案。1 檢視高記憶體。2 檢視高cpu。3 程式異常。4 程式hang死。1 使用windbg偵錯程式attach到需要除錯的程序。會暫停程序的執行 2 抓取程序的dump檔案,...