WinDebug 是一款調試工具可以調試進程的工具,程序測試軟件功能強大 其中一項是使用WENDEBUG檢測藍屏的原因 很實用
查看當前線程的調用堆棧
kb
查看全部線程的調用堆棧
~*kb
顯示分析的詳細信息
!analyze -v
繼續執行
g
查看線程詳細信息,例如線程入口地址
~21 (數字代表線程id)
查看變量地址
x 變量名,可以用通配符
例如
x 05memcorrupt!g_*
用給定類型查看對象
dt 類型名 地址
例如
dt CAppInfo 0x00032cb0
查看給定地址的內容
dd 地址
例如
dd 0x72726443
以下都是看內容,顯示的形式不同而已
dc
du
dds
dpp
dpa
dpu
查看當前指令
u eip
查看給定地址的代碼內容
u 7c80540f
查看加載的全部模塊的起始地址
lm
同時包含起始和結束的信息
------------------------------------------------------------
展開當前調用棧的內容
dd esp esp+100
注意這裏要用正數,注意棧的生長方向
------------------------------------------------------------
查看給定代碼地址對應的模塊
ln 0100156a
-----------------------------------------------------
順便提一下,我們不需要等到發生異常才能去調試一個進程。任何時候都可以通過運行vsjitdebugger.exe -p PID 來讓調試器附著到任意進程,PID表示要調試的進程的ID.
事實上,Windows任務管理器使得調試進程更加容易,我們可以打開“進程”屬性頁,選擇一個進程,並單擊鼠標右鍵,然後選擇“Debug”.
生成dump文件可以通過設置讓係統在程序錯誤時生成,也可以手動生成dump文件
1、如何手動生成dump文件
程序崩潰(crash)的時候,可以使用WinDBG要把當時程序內存空間數據都保存下來,生成的文件稱為dump 文件。
步驟:
1) 打開WinDBG並將之Attach 到crash的程序進程
2) 輸入產生dump 文件的命令
WinDBG產生dump 文件的命令是 .dump ,可以選擇不同的參數來生成不同類型的dump文件。
選項(1): /m
命令行示例:.dump /m C:\dumps\myapp.dmp
注解: 缺省選項,生成標準的minidump, 轉儲文件通常較小,便於在網絡上通過郵件或其他方式傳輸。 這種文件的信息量較少,隻包含係統信息、加載的模塊(DLL)信息、 進程信息和線程信息。
選項(2): /ma
命令行示例:.dump /ma C:\dumps\myapp.dmp
注解: 帶有盡量多選項的minidump(包括完整的內存內容、句柄、未加載的模塊,等等),文件很大,但如果條件允許(本機調試,局域網環境), 推薦使用這中dump。
選項(3):/mFhutwd
命令行示例:.dump /mFhutwd C:\dumps\myapp.dmp
140.5M / 09-05
76.4M / 03-25
55M / 06-05
237.9M / 04-13
900.9M / 03-02
96.2M / 07-06
311.2M / 07-06
335M / 07-06
200M / 07-06
413.8M / 07-06
484.7M / 09-27
165.4M / 09-05
353.9M / 06-05
131.8M / 04-13
195.6M / 03-03
45.6M / 09-08
665.2M / 07-06
2.84G / 07-06
93M / 07-06
338.3M / 07-06
1.38G / 07-26
488.3M / 07-16
109.8M / 06-03
142M / 01-08
1.2M / 11-23
548.8M / 04-13
1.6M / 04-13
1.48G / 03-18
646.6M / 03-03
133.7M / 03-03
110.5M / 09-05
33.4M / 09-05
325.8M / 08-12
60M / 04-29
254M / 04-25
659M / 04-23
1M / 12-26
253.4M / 12-08
253M / 12-08
1.19G / 11-16
369M / 09-22
181.5M / 09-22
201.2M / 09-05
488.3M / 07-16
248.9M / 12-08
248.9M / 12-08
100.6M / 03-06
148.9M / 03-06
1.12G / 07-06
1.25G / 07-06
1.76G / 09-22
1.92G / 04-17
116.2M / 04-10
201.5M / 04-13
7.31G / 07-01
94.3M / 07-06
2.48G / 07-06
7.63G / 07-06
1M / 07-06
778.1M / 07-06
561.8M / 07-11
72M / 07-06
548.7M / 07-06
1.00G / 07-06
9.13G / 07-06
126.2M / 07-06
72M / 07-06
105.1M / 07-06
132M / 07-06
132M / 07-06