西西軟件園多重安全檢測下載網(wǎng)站、值得信賴的軟件下載站!
西西首頁 電腦軟件 安卓軟件 電腦游戲 安卓游戲 排行榜 專題合集

WinDbg學(xué)習(xí)資料

  • WinDbg學(xué)習(xí)資料
  • 軟件大小:2.4M
  • 更新時間:2013-12-30 09:55
  • 軟件語言:中文
  • 軟件廠商:
  • 軟件類別:國產(chǎn)軟件 / 免費軟件 / 電子教程
  • 軟件等級:4級
  • 應(yīng)用平臺:Win7
  • 官方網(wǎng)站:http://elephantinaurance.com
  • 應(yīng)用備案:
好評:50%
壞評:50%

軟件介紹

WinDbg是微軟開發(fā)的免費源碼級調(diào)試工具。Windbg可以用于Kernel模式調(diào)試和用戶模式調(diào)試,還可以調(diào)試Dump文件。在DotNet方面WinDbg是調(diào)試分析SSCLI的最佳工具,同時可以和SOS擴(kuò)展一起調(diào)試分析.net程序。最近一段時間項目需要學(xué)習(xí)了一下,有感于WinDbg功能的強(qiáng)大。

WinDbg資料整理:

使用WinDbg調(diào)試程序

WINDOWS調(diào)試工具很強(qiáng)大,但是學(xué)習(xí)使用它們并不容易。特別對于驅(qū)動開發(fā)者使用的WinDbg和KD這兩個內(nèi)核調(diào)試器(CDB和NTSD是用戶態(tài)調(diào)試器)。本教程的目標(biāo)是給予一個已經(jīng)有其他調(diào)試工具使用經(jīng)驗的開發(fā)者足夠信息,使其能通過參考WINDOWS調(diào)試工具的幫助文件進(jìn)行內(nèi)核調(diào)試。本文將假定開發(fā)者熟悉一般WINDOWS操作系統(tǒng)和進(jìn)程的建立過程。

本文的重點是集成內(nèi)核模式和用戶態(tài)模式的圖形化調(diào)試器WinDbg。KD在腳本和自動化調(diào)試中更有用,并且在資深程序員中擁有一定地位,但是本教程將集中討論WinDbg,只會偶爾提到KD。

本文討論的是Windows NT 4.0,Windows 2000或以后的版本,而且目標(biāo)電腦的處理器基于X86架構(gòu)。對于64位平臺,將不會特別提及。

總之,本教程由簡單介紹調(diào)試器的安裝開始,大體分成2部分,基礎(chǔ)知識和選擇技術(shù)�;A(chǔ)知識包括基本調(diào)試命令和常用調(diào)試命令。選擇技術(shù)是其他命令和在很多情況下都有用的調(diào)查方法。后者并不是調(diào)查象deadlocks, memory corruption或者resource leaks的唯一方法。第一次閱讀本教程,你可能會跳過選擇技術(shù)。你可以停止閱讀本教程而轉(zhuǎn)向微軟調(diào)試器討論組,也可以通過調(diào)試器的反饋e-mai解決更多的問題。 

通往WinDbg的捷徑(一)

通往WinDbg的捷徑(二)

用WinDbg探索CLR世界1 - 安裝與環(huán)境配置

在托管代碼中設(shè)置斷點(WINDBG)

用WinDbg動態(tài)脫Reflector

使用WINDBG和SOS調(diào)試死鎖

使用Windbg和SoS擴(kuò)展調(diào)試分析

幾個常用的 WinDbg 命令

Windbg核心調(diào)試之dump分析

從Ollydbg說起-----WinDbg用戶態(tài)調(diào)試教程

WinDbg使用幫助:基本調(diào)試技術(shù):

本節(jié)包括:

使用 !analyze 擴(kuò)展

設(shè)定條件斷點

將虛擬地址轉(zhuǎn)換成物理地址

追蹤處理器獨占者

從轉(zhuǎn)儲文件中提取信息

確定對象的ACL

顯示一個臨界區(qū)

調(diào)試應(yīng)用故障

SOS 調(diào)試擴(kuò)展 (SOS.dll)

WinDbg驅(qū)動調(diào)試攻略:

安裝完虛擬機(jī)后,請在VMware主菜單“VM”中選擇“Install VM Tools…”,完成系統(tǒng)驅(qū)動文件的安裝。

安裝完這兩個軟件后,請在VMware中安裝跟你的電腦版本相同的操作系統(tǒng)。例如:你的電腦安裝的是WindowsXP Professional,那么最好在Vmware中安裝相同版本。至少是相同的系統(tǒng),Windows XPßà Windows XP、Windows 2000ßà Windows 2000。這樣會在驅(qū)動調(diào)試過程中避免不必要的麻煩。筆者使用的操作系統(tǒng)為Windows XP Professional。

我們將使用電腦的COM1口最為調(diào)試口。

(1) 編輯虛擬機(jī)中C盤根目錄下的boot.ini文件。

C:\>attrib -s -h -r boot.ini

C:\>notepad boot.ini

在boot.ini文件中添加以下代碼:

multi(0) disk(0) rdisk(0) partition(1) \WINDOWS="Microsoft Windows XP Professional-Debug" /fastdetect /debugport=COM1 /baudrate=115200

(2) 打開vmware中winxp的設(shè)備管理器,選擇端口(com1),如下圖。

(3) 雙擊這個"com1",在彈出的對話框中,設(shè)置如下圖。

(4) 關(guān)閉vmware下的操作系統(tǒng)。配制虛擬機(jī)的硬件,VM->Settings->Add->加一個Serial Port,選擇"Output to named pipe",然后下一步,第一框里保持默認(rèn)的 "\\.\pipe\com_1"

第二框里選"This end is the server."

第三框里選"The other end is an application."

選中 "Connect at power on"選中 "Yield CPU on poll"。保存退出。

(5) 回到我們的真實系統(tǒng)(主機(jī))中,重復(fù)(2)、(3)兩步。

(6) 設(shè)置WinDbg的快捷方式,及其運行參數(shù):

 在快捷方式的屬性中,將目標(biāo)(Target)改為:

"C:\Program Files\Debugging Tools for Windows\windbg.exe" -b -k com:pipe,port=\\.\pipe\com_1,resets=0

命令參數(shù)的意義:

-b:一旦主機(jī)目標(biāo)機(jī)之間建立起連接,立刻中斷目標(biāo)機(jī)

-k:內(nèi)核調(diào)試

Com:設(shè)置連接目標(biāo)機(jī)的通信端口(此處為命名管道)和波特率(此處為115200)

-y:設(shè)置符號文件路徑

(7)設(shè)置WinDbg參數(shù)

 現(xiàn)在我們假設(shè)你的驅(qū)動代碼放在D:\mydriver目錄中;系統(tǒng)級Symbol文件存放在C:\WINDOWS\Symbols目錄中,這些Symbol文件是從微軟的網(wǎng)站上http://msdl.microsoft.com/download/symbols下載而來,這個網(wǎng)址是不可以用IE直接打開的,WinDbgà Fileà Symbol File Path...界面中選擇Reload,WinDbg會自動幫你下載;驅(qū)動生成的Symbol文件存放在D:\mydriver\objchk_wxp_x86\i386目錄中。

a) 設(shè)置驅(qū)動Symbol路徑,WinDbgà Fileà Symbol File Path...為

SRV*C:\WINDOWS\Symbols*http://msdl.microsoft.com/download/symbols; D:\mydriver\objchk_wxp_x86\i386

b) 設(shè)置驅(qū)動源文件路徑,WinDbgà Fileà Source File Path…為D:\mydriver

c) 為了保險起見,我們同時設(shè)置系統(tǒng)變量。

My Computer à Properties à Advanced Tab à Enviroment Variables à Add.

_NT_DEBUG_BAUD_RATE=115200

_NT_SYMBOL_PATH=SRV*C:\WINDOWS\Symbols*http://msdl.microsoft.com/download/symbols

_NT_ALT_SYMBOL_PATH = D:\mydriver\objchk_wxp_x86\i386

_NT_SOURCE_PATH = D:\mydriver

(8)啟動VMware,將主機(jī)目錄C:\WINDOWS\Symbols下的拷貝到虛擬機(jī)的相同位置。同時請把驅(qū)動編譯后生成在D:\mydriver\objchk_wxp_x86\i386目錄下的*.pdb、*.sys、*.map、*.exp、*.lib文件一并拷貝到兩個系統(tǒng)的C:\WINDOWS\Symbols目錄中。

(9)重新啟動VMware,并選擇如圖所示。這個時候先不敲回車鍵。

(10) 在主機(jī)中運行之前設(shè)置好的WinDbg快捷方式。直到在WinDbg命令窗口中出現(xiàn)“Waiting to reconnect...”,此時打開VMware,敲回車鍵進(jìn)入虛擬機(jī)。到這里所有的設(shè)置工作就全部完成了。

2.驅(qū)動安裝及調(diào)試

這里其大家注意,由于我們目前用的是虛擬機(jī),所以安裝驅(qū)動程序的時候一定要把VMware設(shè)置到全屏狀態(tài)。

(1) 編輯你要調(diào)試的源代碼,在你需要調(diào)試的代碼中添加硬斷點。如果不添加硬斷點,將沒有辦法進(jìn)入所調(diào)試的程序中。具體方法如下:

在你需要調(diào)試的程序中加入以下代碼:

extern "C" {

#include <wdm.h>

//或者是#include <winddk.h>

}//放在文件開頭

DbgBreakPoint();//放在需要調(diào)試的地方

重新編譯驅(qū)動程序,記住一定要更新把重新生成的*.pdb、*.sys、*.map、*.exp、*.lib文件一并拷貝到兩個系統(tǒng)的C:\WINDOWS\Symbols目錄中。

(2)打開VMware,Ctrl+Alt+Enter進(jìn)入虛擬機(jī)全屏模式。插入需要調(diào)試設(shè)備的硬件,筆者調(diào)試的目標(biāo)設(shè)備為USB。當(dāng)USB插入主機(jī)后,直接由VMware識別到這個USB設(shè)備,指定驅(qū)動位置,系統(tǒng)將會在你設(shè)置硬斷點的地方停下來。這個時候你就可以回到WinDbg,進(jìn)行單步調(diào)試了。你還可以在程序中添加軟斷點,“F9”或者“bp MyApp!MyFunction”。

3.兩臺電腦調(diào)試說明

兩臺電腦調(diào)試跟借助VMware調(diào)試有所不同,不同之處有以下幾個方面。

(1)需要自己制作一條Null Modem Cable. 請參考以下電路。將兩臺電腦連接起來。

管腳信息說明: 

9-Pin NULL Modem Cabling

3 2 Transmit Data

2 3 Receive Data

7 8 Request to Send

8 7 Clear to Send

6,1 4 Data Set Ready and Carrier Detect

5 5 Signal Ground

4 6,1 Data Terminal Ready

25-Pin NULL Modem Cabling

2 3 Transmit Data

3 2 Receive Data

4 5 Request to Send

5 4 Clear to Send

6 20 Data Set Ready and Carrier Detect

7 7 Signal Ground

20 6 Data Terminal Ready 

(2)WinDbg快捷方式參數(shù)設(shè)置

"C:\Program Files\Debugging Tools for Windows\windbg.exe" -b -k com:port=\\.\ com1,resets=0


軟件標(biāo)簽: WinDbg

還有WinDbg用法詳解,WinDBG命令行大全.

windbg 6.12最新版下載:http://elephantinaurance.com/soft/71175.html

其他版本下載

發(fā)表評論

昵稱:
表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
查看所有(0)條評論 > 字?jǐn)?shù): 0/500

TOP
軟件下載