使用windbg分析dmp檔案定位程式bug

2021-06-08 10:29:29 字數 1256 閱讀 8321

本文編寫了乙個簡單能產生除數為0異常的程式,讓其執行,產生崩潰,通過drwtsn產生dmp檔案,然後通過windbg分析dmp檔案,定位程式bug。

目的:學習windbg基本功能使用。

程式源**:

void

crash(

void)

void

main(

void)

編譯環境:vc++6.0

編譯器設定:

這一步設定,要求對release版本不使用優化,如果使用優化,上面源**中crash(void)函式將不被彙編。

這一步設定,產生release版本的除錯符號表,為後續定位錯誤準備。

步驟:

1、安裝drwtsn32

使用者可以通過drwtsn32命令,檢視dmp檔案會被儲存在何處。

2、 3、設定windbg

a、符號表路徑設定

b、源**路徑設定

c、dmp檔案匯入

上圖中紅色部分標明的地方,說明windbg已經分析出了程式異常的上下文環境,比如eip為00401018說明該位址處產生異常。

上圖為當前的呼叫堆疊,可知故障出在crash函式裡面。

windbg 分析dmp 之一

1.ctrl d開啟dmp 或者直接把dmp拖到視窗 2.ctrl s輸入 一般是拷貝 符號檔案位址,alt r勾選reload選項,enter 3.symchk,檢查符號 4.lm,核對符號 5.kb,顯示堆疊 6.如果顯示的是ntdll dbgbreakpoint 哎,已經不是第一現場 接著看7...

使用windbg分析dmp查詢程式崩潰問題

include pragma comment lib,dbghelp.lib define dmp file path d mydmp long winapi myunhandledexceptfiltercallback struct exception pointers lpexceptioni...

WinDbg除錯DMP格式檔案

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 ...