Windbg中文版是一款強(qiáng)大的內(nèi)核態(tài)調(diào)試工具,Windbg具有豐富的調(diào)試功能,包括內(nèi)核級和用戶級調(diào)試功能。它可以與各種調(diào)試目標(biāo)(如本地或遠(yuǎn)程計(jì)算機(jī)、虛擬機(jī)等)進(jìn)行連接,并通過各種調(diào)試技術(shù)(如符號調(diào)試、內(nèi)存轉(zhuǎn)儲分析等)提供詳細(xì)的調(diào)試信息。Windbg提供了多種命令和擴(kuò)展,用于檢查內(nèi)存狀態(tài)、查看寄存器值、跟蹤程序執(zhí)行流程等。
Windbg中文版使用方法
配置
Windbg在使用前,需要進(jìn)行配置。
1.1環(huán)境變量
1、添加環(huán)境變量:_NT_SYMBOL_PATH
2、環(huán)境變量值:
C:\MyCodesSymbols;SRV*C:\MyLocalSymbols*http://msdl.microsoft.com/download/symbols
環(huán)境變量配置
3、根據(jù)環(huán)境變量值,在C盤下新建文件夾:MyCodesSymbols,MyLocalSymbols這兩個文件夾主要存放windows的符號文件,也就是系統(tǒng)默認(rèn)的一些pdb文件,這些文件不是系統(tǒng)自帶的,需要配置好鏈接,第一次調(diào)試的時候windbg默認(rèn)下載需要的缺失的symbol文件。
pdb 下載的文件
Windbg工具配置
符號配置Symbol File Path
C:\MyCodesSymbols;SRV*C:\MyLocalSymbols*http://msdl.microsoft.com/download/symbols
符號配置
源碼路徑配置Source File Path
工具不會智能定位到相應(yīng)的源碼,所以要配置你的源碼工程的路徑,是工程文件(例如這種格式的文件:*.vcxproj)所在的路徑。
源碼配置1
源碼位置
編譯器配置
支持VC6以上的Visual Studio編譯器,設(shè)置相關(guān)的屬性
禁止優(yōu)化項(xiàng):
禁止優(yōu)化項(xiàng)1
禁止優(yōu)化項(xiàng)2
生成程序數(shù)據(jù)庫文件
pdb 文件
使用
工具進(jìn)行使用前配置后,可以進(jìn)行工作了。這里介紹綁定進(jìn)程進(jìn)行調(diào)試的操作步驟。
綁定進(jìn)程
注意,進(jìn)程要先啟動再進(jìn)行綁定設(shè)置,因?yàn)锳ttach to Process窗口不會像任務(wù)管理器一樣實(shí)時刷新進(jìn)程。選中進(jìn)程名稱,點(diǎn)擊Ok確認(rèn)。
綁定進(jìn)程
調(diào)試
綁定進(jìn)程后,可以在命令窗口輸入g字母命令,然后回車。或者用快捷鍵F5。即可在調(diào)試中運(yùn)行進(jìn)程了。注意:須要pdb文件,和exe或dll放在一起,或者上文提到的把pdb文件放在C:\MyCodesSymbols目錄。因?yàn)檎{(diào)試信息都是根據(jù)pdb的文件時間戳進(jìn)行定位歷史文件的,所以在發(fā)布版本后,最好備份一下代碼和文件。否則版本發(fā)出去了,原生源碼進(jìn)行編譯了,pdb不一樣了,源碼被修改了,那么抓取到的*.dmp內(nèi)存映像就不能準(zhǔn)確地調(diào)試。
程序被windbg綁定后,F(xiàn)5運(yùn)行,現(xiàn)在可以正常操作軟件了。這時候軟件有異常,命令窗口會打印相關(guān)的異常命令,如下圖:
Access violation–code c0000005 (first chance)
調(diào)試
這種是典型的內(nèi)存禁止訪問異常。輸入小寫字母k命令,即可打印堆棧。左窗口也是相應(yīng)的源碼,像vs那樣調(diào)試。工具欄上有很多調(diào)試窗口可以展示出來:
調(diào)試工具欄
如局部變量數(shù)據(jù)展示窗口:Locals
變量展示窗口
命令
除了基本的可視化調(diào)試之外,windbg支持命令進(jìn)行其他的內(nèi)核調(diào)試,可以根據(jù)實(shí)際需要進(jìn)行使用,下面簡單介紹常用的命令:
1、查看版本信息:version、vertarget。
2、查看模塊信息:lm、!dlls、!lmvi等。
3、調(diào)用棧:用k命令顯示調(diào)用棧,用.frames命令切換棧幀。
4、內(nèi)存操作:讀內(nèi)存用d命令,寫內(nèi)存用e命令。
5、自動分析:!analyze、!owner等。
6、符號命令:.reload加載符號, .sympath設(shè)置符號路徑, !sym設(shè)置符號選項(xiàng)。
7、進(jìn)程線程:!process顯示進(jìn)程信息;.process顯示當(dāng)前進(jìn)程,或用.process /i切換當(dāng)前進(jìn)程;!peb顯示進(jìn)程環(huán)境塊內(nèi)容;~命令顯示線程列表,用~n s可切換當(dāng)前線程,n表示線程號;.thread顯示當(dāng)前線程。
分析dmp文件
Windbg是調(diào)試的利器,可以綁定進(jìn)程進(jìn)行調(diào)試,也可以調(diào)試進(jìn)程的內(nèi)存映像*.dmp文件,一般是進(jìn)程崩潰后系統(tǒng)產(chǎn)生的dmp文件,或者程序try catch用代碼生成的dmp文件。分析dmp文件,也大致上以上步驟,只不過上面是綁定文件,這個是打開dmp文件而已。
打開 dump 文件
擴(kuò)展
綁定進(jìn)程,調(diào)試dmp文件,當(dāng)然除了windbg之外,還可以直接用vs編譯器,這是最好不過的事,只是vs編譯器體積實(shí)在太大了,沒有windbg小巧方便。
windbg中文版軟件特色
1.Windbg是Microsoft公司免費(fèi)調(diào)試器調(diào)試集合中的GUI的調(diào)試器,支持Source和Assembly兩種模式的調(diào)試。
2.Windbg不僅可以調(diào)試應(yīng)用程序,還可以進(jìn)行Kernel Debug。
3.結(jié)合Microsoft的Symbol Server,可以獲取系統(tǒng)符號文件,便于應(yīng)用程序和內(nèi)核的調(diào)試。
4.Windbg支持的平臺包括X86、IA64、AMD64。
上一篇:幫我吧服務(wù)管理平臺
下一篇:PhotoZoom最新版