利用VMWare和WinDbg調(diào)試驅(qū)動(dòng)程序
心里總感覺(jué) SOFTICE 的發(fā)展快到末路了。果然在 2006 年時(shí)Compuare 宣布停止 SOFTICE 開(kāi)發(fā)。這里消息確實(shí)令很多人心痛。但與此同時(shí),Windows 的配套調(diào)試器 windbg , cdb 等不斷更新,功能不斷強(qiáng)大,你必須選擇它,雖然它內(nèi)核調(diào)試速度不理想。后來(lái)我知道了 syser debuger, 國(guó)人寫(xiě)的不錯(cuò)的調(diào)試器,基本上 SOFTICE 命令等相似,上手很快,單機(jī)調(diào)試即可,速度挺快。但是要開(kāi)發(fā)windows 內(nèi)核程序,最好還是 windbg,至少 windbg 與系統(tǒng)的兼容肯定不會(huì)差吧。因?yàn)槲易约旱臋C(jī)器配置不高,所以平時(shí)玩的時(shí)候就用 syser , 但在公司真正解決問(wèn)題時(shí)還是用 windbg。windbg 除了速度慢點(diǎn)(還能忍受,現(xiàn)在我公司的機(jī)器是AMD雙核的),還有就是初次使用配制比較麻煩,你如果真實(shí)的使用 2 臺(tái)機(jī)器調(diào)試那問(wèn)題可能會(huì)更多。我每次重裝系統(tǒng)后,都要上網(wǎng)找資料然后一遍遍配制挺煩人的,這次總結(jié)一下。
首先,先下載http://msdl.microsoft.com/download/symbols/packages/windowsxp/WindowsXP-KB835935-SP2-slp-Symbols.exe?符號(hào)表,然后安裝到真實(shí)系統(tǒng)中。
再下載http://msdl.microsoft.com/download/symbols/debuggers/dbg_x86_6.5.3.8.exe?WinDbg程序的最新版本,同樣也安裝到真實(shí)系統(tǒng)中。
接下來(lái)我們要在虛擬機(jī)中裝系統(tǒng)了,我用的是WinXP SP2。安裝完成后修改boot.ini文件。在里面[operating systems]節(jié)中加入一行,
" multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows?XP Professional - debug" /fastdetect /debug /debugport=com1 /baudrate=115200 "
隨后關(guān)閉系統(tǒng)。配制虛擬機(jī)的硬件,點(diǎn)擊 "Edit virtual machine settings",添加一個(gè)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"
然后點(diǎn)擊 "Advanced>>" 然后在新窗口中選中 "Yield CPU on poll"。保存退出。
好了,以上就是虛擬機(jī)系統(tǒng)要做的全部事情。
在真實(shí)系統(tǒng)中,我們要在設(shè)備管理器中。找到Com1口,然后再屬性頁(yè)中修改他的速率為115200。
然后為使用方便,創(chuàng)建一個(gè)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后面的路徑就是我們前面安裝符號(hào)表的路徑。
使用時(shí),首先運(yùn)行虛擬機(jī)系統(tǒng),到bootloader選擇進(jìn)入哪個(gè)系統(tǒng)的時(shí)候,我們先按一下上下,將倒計(jì)時(shí)停止。然后再到真實(shí)系統(tǒng)中運(yùn)行剛才我們創(chuàng)建的WinDbg快捷方式。運(yùn)行完成后再在虛擬系統(tǒng)中選擇帶有調(diào)試標(biāo)志的系統(tǒng)即可。此時(shí)回到真實(shí)系統(tǒng),稍等一會(huì)就可以看到WinDbg輸出信息告訴我們兩個(gè)系統(tǒng)已經(jīng)連接上了。到此調(diào)試器已經(jīng)和VMware 虛擬機(jī)連接成功了,下面就可以進(jìn)行期待已久的調(diào)試工作了。
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1760549