利用VMWare和WinDbg調試驅動程序
心里總感覺 SOFTICE 的發展快到末路了。果然在 2006 年時Compuare 宣布停止 SOFTICE 開發。這里消息確實令很多人心痛。但與此同時,Windows 的配套調試器 windbg , cdb 等不斷更新,功能不斷強大,你必須選擇它,雖然它內核調試速度不理想。后來我知道了 syser debuger, 國人寫的不錯的調試器,基本上 SOFTICE 命令等相似,上手很快,單機調試即可,速度挺快。但是要開發windows 內核程序,最好還是 windbg,至少 windbg 與系統的兼容肯定不會差吧。因為我自己的機器配置不高,所以平時玩的時候就用 syser , 但在公司真正解決問題時還是用 windbg。windbg 除了速度慢點(還能忍受,現在我公司的機器是AMD雙核的),還有就是初次使用配制比較麻煩,你如果真實的使用 2 臺機器調試那問題可能會更多。我每次重裝系統后,都要上網找資料然后一遍遍配制挺煩人的,這次總結一下。
首先,先下載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 虛擬機連接成功了,下面就可以進行期待已久的調試工作了。
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1760549