Posted on 2009-03-30 22:34
S.l.e!ep.¢% 閱讀(2193)
評論(0) 編輯 收藏 引用 所屬分類:
WinDbg
Windows內(nèi)核調(diào)試:符號文件和Windbg的安裝與環(huán)境配置2008-05-16 23:26flyingstarsoul2007-9-21
?????? 內(nèi)核調(diào)試:內(nèi)核調(diào)試可以幫助我們查看內(nèi)核的內(nèi)部數(shù)據(jù)結(jié)構(gòu),跟蹤內(nèi)核中的函數(shù),從而探查Windows的內(nèi)部機(jī)理。內(nèi)核調(diào)試工具有Microsoft的Windows調(diào)試工具箱、Compuware NuMega的SoftIce、
www.sysinternals.com上的LiveKD等等。?????? 內(nèi)核調(diào)試所需的符號文件:符號文件包含了函數(shù)和變量的名稱,由鏈接器產(chǎn)生,在調(diào)試過程中被用來引用和顯示這些名稱。為了使用任何一個(gè)內(nèi)核調(diào)試工具來查看內(nèi)核數(shù)據(jù)結(jié)構(gòu),必須首先至少獲得內(nèi)核映像Ntoskrnl.exe的正確的符號文件,即二者版本完全匹配。利用Microsoft的按需符號服務(wù)器,可以得到當(dāng)前調(diào)試所需的正確版本,首先需要設(shè)置環(huán)境變量來指定符號文件的路徑。假如你想把符號文件存放在C:\WINDOWS\Symbols目錄下,環(huán)境變量設(shè)置如下:系統(tǒng)環(huán)境變量名:_NT_SYMBOL_PATH 本例變量值:srv*C:\WINDOWS\Symbols*http://msdl.microsoft.com/download/symbols其中,
http://msdl.microsoft.com/download/symbols是Microsoft符號服務(wù)器。當(dāng)運(yùn)行內(nèi)核調(diào)試器并在需要符號文件的時(shí)候,將連接到該服務(wù)器下載正確的符號文件。可以下載工具 LiveKD放到Windbg(見下文)安裝目錄下,第一次在命令行運(yùn)行Livekd.exe,將會(huì)自動(dòng)下載符號文件到指定的目錄(耗時(shí)長,勿關(guān)閉命令行窗口,否則可能出現(xiàn)錯(cuò)誤,導(dǎo)致符號文件不能正常使用)。Microsoft Windows調(diào)試工具箱:有命令行版本(KD.exe)和圖形界面版本(Windbg.exe),可以到
http://www.microsoft.com/whdc/DevTools/Debugging/default.mspx下載。有三種類型的內(nèi)核調(diào)試類型:????????? 打開一個(gè)崩潰轉(zhuǎn)儲(chǔ)文件。當(dāng)Windows系統(tǒng)崩潰的時(shí)候會(huì)產(chǎn)生這樣的文件。????????? 連接到一個(gè)正在運(yùn)行的系統(tǒng)上,檢查該系統(tǒng)的狀態(tài)或設(shè)置斷點(diǎn)來調(diào)試設(shè)備驅(qū)動(dòng)程序代碼。一般要求有兩臺計(jì)算機(jī)——目標(biāo)計(jì)算機(jī)(被調(diào)試系統(tǒng))和控制主機(jī)(運(yùn)行調(diào)試器),本機(jī)+虛擬機(jī)調(diào)試亦可。操作細(xì)節(jié)超出本文范圍。????????? 對于Windows XP和Windows Server2003,可以連接到本地系統(tǒng)上來查看系統(tǒng)狀態(tài),稱為本地內(nèi)核調(diào)試。方法是:安裝Windbg后,選擇“File”菜單的“Kernel Debug”菜單項(xiàng),再點(diǎn)擊“Local”標(biāo)簽,再點(diǎn)“OK”按鈕。在本地內(nèi)核調(diào)試模式下,有些命令不能正常工作(如查看內(nèi)核棧、用.dump命令創(chuàng)建一個(gè)內(nèi)存轉(zhuǎn)儲(chǔ))。當(dāng)基本的本地內(nèi)核調(diào)試功能不能工作的時(shí)候,可以用
www.sysinternals.com上的免費(fèi)工具LiveKD.exe。 參考文獻(xiàn):[1] 深入解析Windows操作系統(tǒng)(第4版),2007.[2]
http://www.microsoft.com.