WinDbg的安裝、配置和功能


一、WinDbg簡介

WinDbg是微軟發布的一款免費而十分強大的調試工具。既然是微軟自己發布的調試工具,那它對微軟產品的調試當然是十分的強大。Windows 調試器 (WinDbg) 可用於調試內核模式和用戶模式代碼,來分析故障轉儲,並檢查代碼時 CPU 寄存器執行,同時也是一款相當優秀的源碼級(source-level)調試工具。相比較於Visual Studio,它是一個輕量級的調試工具,所謂輕量級指的是它的安裝文件大小較小,但是其調試功能,卻比VS更為強大。

二、獲取和安裝

2.1、獲取途徑

可以將Windows調試工具作為開發工具包的一部分或作為獨立工具集獲取:

  • 作為WDK的一部分
    Windows的調試工具包含在Windows驅動程序工具包(WDK)中。Download the Windows Driver Kit (WDK).
  • 作為Windows SDK的一部分
    Windows軟件開發工具包(SDK)中包含Windows調試工具。要下載安裝程序或ISO映像,請參閱Windows開發人員中心上的Windows 10 SDK
  • 作為獨立的工具集
    通過開始安裝Windows SDK,然后在要安裝的功能列表中僅選擇Windows的調試工具(並清除所有其他功能的選擇),可以在不安裝Windows SDK或WDK的情況下單獨安裝Windows的調試工具。要下載安裝程序或ISO映像,請參閱Windows開發人員中心上的Windows 10 SDK

2.2、安裝

安裝過程略

下面是安裝后的截圖

作為獨立工具集安裝后

作為SDK一部分安裝后

啟動后的界面

三、配置

安裝好之后就需要配環境變量,打開環境變量配置界面 我的電腦->右鍵屬性->高級系統設置->環境變量設置->在系統變量里找到path,把你的WinDbg安裝目錄寫上去

設置好后,在命令行里輸入windbg,如果能跑起來,則設置成功,然后再在系統變量中創建一個名為 _NT_SYMBOL_PATH,值為:SRV*F:\Debug_Symbol\Symbols32* http://msdl.microsoft.com/download/symbols

啟動Windbg 打開一個exe看到這個說明配置成功

 

四、功能

Windbg是Microsoft公司免費調試器調試集合中的GUI的調試器,支持Source和Assembly兩種模式的調試。Windbg不僅可以調試應用程序,還可以進行Kernel Debug。結合Microsoft的Symbol Server,可以獲取系統符號文件,便於應用程序和內核的調試。Windbg支持的平台包括X86、IA64、AMD64。雖然windbg也提供圖形界面操作,但它最強大的地方還是有着強大的調試命令,一般情況會結合GUI和命令行進行操作,常用的視圖有:局部變量、全局變量、調用棧、線程、命令、寄存器、白板等。其中“命令”視圖是默認打開的。
安裝后,相關目錄如下:

用戶成功安裝微軟Windows調試工具集后,能夠在安裝目錄下發現四個調試器程序,分別是:cdb.exe、ntsd.exe、kd.exe和Windbg.exe。其中cdb.exe和ntsd.exe只能調試用戶程序,Kd.exe主要用於內核調試,有時候也用於用戶態調試,上述三者的一個共同特點是,都只有控制台界面,以命令行形式工作。

Windbg.exe在用戶態、內核態下都能夠發揮調試功能,尤其重要的是,它不再是命令行格式而是采用了可視化的用戶界面。所以絕大部分情況下,我們在談及Windows調試工具的時候,都直接指向Windbg,而不大談及前三者。

Windbg在用戶態和內核態下,都支持兩種調試模式,即“實時調試模式(Living)”和“事后調試模式(Postmortem)”。所謂實時模式,是被調試的目標對象(Target)當前正在運行當中,調試器可以實時分析、修改被調試目標的狀態,如寄存器、內存、變量,調試exe可執行程序或雙擊雙機實時調試都屬於這種模式;所謂事后模式,是被調試的目標對象(Target)已經結束了,現在只是事后對它保留的快照進行分析,這個快照稱為轉儲文件(Dump文件)。Windbg另一個重大優點,還在於它支持源碼級的調試,就像VC自帶的調試器一樣。雖然提供了用戶界面,但Windbg歸根結底還是需要用戶一個個地輸入命令來指揮其行動。這就是他的Command窗口。每個調試命令都各有使用范圍,有些命令只能用於內核調試,有些命令只能用於用戶調試,有些命令只能用於活動調試。但用戶也不必記得這許多,一旦在某個環境下,使用了不被支持的命令,都會顯示“No export XXX found”的字樣。

我們通過各調試器比較表,看看windbg的組要功能

內核調試方面:

用戶調試方面:

雖說WinDbg在無源碼調試方面確實比較困難,但在調試內核方面卻真的有獨到之處。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM