WDK安装调试以及注意事项
網上有很多關于利用VM單機調試驅動的說明,但是其中有些問題都沒有說明白,可能是由于調試器版本不同的原因,我的調試器是6.08的。
1、在虛擬機啟動的過程中,WINDbG顯示的是沒有鏈接成功,只有等虛擬機完全啟動以后,才會顯示連接成功
2、在windbg中,一定設置一個命令行參數reconnect。如下所示,
com:port=//pipe/com_1,baud=115200,pipe,reconnect
因為在啟動調試器的過程中,必須要重新連接一次
3、windbg安裝在調試端,驅動源代碼、符號表等都安裝在調試器這一端,在虛擬機中只需要裝載驅動的執行體就可以了。
其他的參考下面的說明:
首先,先下載http://msdl.microsoft.com/download/symbols/packages/windowsxp/WindowsXP-KB835935-SP2-slp-Symbols.exe?符號表,然后安裝到真實系統中。 ?再下載http://msdl.microsoft.com/download/symbols/debuggers/dbg_x86_6.5.3.8.exe?WinDbg程序的最新版本,同樣也安裝到真實系統中。 ?接下來我們要在虛擬機中裝系統了,我用的是WinXP SP2。安裝完成后修改boot.ini文件。在里面[operating systems]節中加入一行, ?" multi(0)disk(0)rdisk(0)partition(1)/WINDOWS="Microsoft Windows?XP Professional - debug" /fastdetect /debug /debugport=com1 /baudrate=115200 " ?隨后關閉系統。配制虛擬機的硬件,點擊 "Edit virtual machine settings",添加一個Serial Port,選擇"Output to named pipe",然后下一步,第一框里保持默認的 "//./pipe/com_1" ?第二框里選"This end is the server." ?第三框里選"The other end is an application." ?選中 "Connect at power on" ?然后點擊 "Advanced>>" 然后在新窗口中選中 "Yield CPU on poll"。保存退出。 ?好了,以上就是虛擬機系統要做的全部事情。 ?在真實系統中,我們要在設備管理器中。找到Com1口,然后再屬性頁中修改他的速率為115200。 ?然后為使用方便,創建一個WinDbg的快捷方式。快捷方式的命令行為 ?"C:/Program Files/Debugging Tools for Windows/windbg.exe" -y C:/Windows/Symbols/ -b -k com:port=//./pipe/com_1,baud=115200,pipe ?這里面-y后面的路徑就是我們前面安裝符號表的路徑。 ??使用時,首先運行虛擬機系統,到bootloader選擇進入哪個系統的時候,我們先按一下上下,將倒計時停止。然后再到真實系統中運行剛才我們創建的WinDbg快捷方式。運行完成后再在虛擬系統中選擇帶有調試標志的系統即可。此時回到真實系統,稍等一會就可以看到WinDbg輸出信息告訴我們兩個系統已經連接上了。到此調試器已經和VMware 虛擬機連接成功了,下面就可以進行期待已久的調試工作了。
?
?
打開windbg.exe 開始進行‘內核調試’(kernel debug)時,?命令行窗口輸出錯誤提示 :?Connected to Windows XP 2600 x86 compatible target, ptr64 FALSE
*** ERROR: Symbol file could not be found.? Defaulted to export symbols for ntkrnlpa.exe - ?Loading Kernel Symbols?..................................................................................................................................................?Loading User Symbols?............................................................................................................?Loading unloaded module list?.........................
當在命令行中輸入!process 0 0命令時,output窗口輸出內容為:?lkd> !process?NT symbols are incorrect, please fix symbols
以上信息說明 符號文件(symbol files)與當前調試的系統版本不符 或者 符號文件路徑設置錯誤
在下載符號文件時,應該先確定我們將要調試的系統的版本:如版本為xp_sp3_enu,則下載相應的符號文件:WindowsXP-
KB936929-SP3-x86-symbols-update-ENU.exe。如果版本為中文版,則下載相應的CHS版。
下載了符號文件后,解壓到個人指定的文件夾-"x:/symbols_folder"。?然后,開始打開windbg調試前,設定系統環境變量'_NT_SYMBOL_PATH',值為符號文件目錄x:/symbols_folder。
(windbg中幫助文件如是寫:Before you start the debugger, use the _NT_SYMBOL_PATH and _NT_ALT_SYMBOL_PATH environment variables to set the path. The symbol path is created by appending _NT_SYMBOL_PATH after _NT_ALT_SYMBOL_PATH.)?打開windbg調試前,按下ctrl+s打開"symbol file path"項配置符號文件路徑,可填入
x:/symbols_folder;srv*x:/symbols_folder*http://msdl.microsoft.com/download/symbols?其中不同的路徑用分號(;)分隔。以上設置srv*x:/symbols_folder*http://msdl.microsoft.com/download/symbols的原因為,當
我們下載下來的符號文件x:/symbols_folder中有缺少或者損壞的文件時,windbg因找不到對應文件而報錯(自己就因這個問題而
浪費了大量時間去查錯,經過反復設置均不能解決.后來從目錄中查到是ntdll.pdb與ntkrnlmp.pdb兩個文件不符),當在路徑中加入
srv*x:/symbols_folder*http://msdl.microsoft.com/download/symbols后,當windbg找不到對應的符號文件時,就會自動連接
到http://msdl.microsoft.com/download/symbols,把缺少的東西下載到x:/symbols_folder。下載期間,我們應耐心等待(時間
的長短視網速及缺少文件數多少而定,整個symbols壓縮文件164M。自己下載下來的符號文件中就因ntdll.pdb與ntkrnlmp.pdb不符
而總是報錯),之后,動人的一面開始展現:?Connected to Windows XP 2600 x86 compatible target, ptr64 FALSE?Symbol search path is:
F:/sys_symbols/;F:/sys_symbols;SRV*f:/sys_symbols*http://msdl.microsoft.com/download/symbols?Executable search path is: ?*******************************************************************************?WARNING: Local kernel debugging requires booting with kernel?debugging support (/debug or bcdedit -debug on) to work optimally.?*******************************************************************************?Windows XP Kernel Version 2600 (Service Pack 3) MP (2 procs) Free x86 compatible?Product: WinNt, suite: TerminalServer SingleUserTS?Built by: 2600.xpsp_sp3_gdr.090804-1435?Kernel base = 0x804d7000 PsLoadedModuleList = 0x805634c0?Debug session time: Sat Mar 20 22:07:50.656 2010 (GMT+8)?System Uptime: 0 days 3:40:45.403
?小結:
1. windbg符號文件路徑搜索的兩個位置:環境變量中的_NT_SYMBOL_PATH設置及windbg中的"symblos file path";
2. 設置srv*x:/symbols_folder*http://msdl.microsoft.com/download/symbols 路徑是保證我們能快速正確使用windbg的法
門,呵呵。
?
?
最后wdk最新版7.1里有個dsf的功能不要安裝,否則系統重啟后無法啟動,真對微軟無語了。
總結
以上是生活随笔為你收集整理的WDK安装调试以及注意事项的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据分析--matplotlib 设置时
- 下一篇: 多wan口路由器,如何实现域名解析?