本文編寫了乙個簡單能產生除數為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 ...