本文主要介紹在win10下如何設置windbg+vmware,以進行雙機調試。本文主要參考:李Sir的博客,並瀏覽了大量網文,以及windbg自帶的help文檔和MSDN,除了綜合各家的經驗外,也分享了本人在實踐遇到的問題和解決辦法。html
1、安裝環境git
1,主機(Host OS): win10 X64windows
2,Windbg:10.0.10586.567 ADM64(本人安裝的是wdk10+VS2015)app
3,VMWare:11.0.0spa
4,Guest OS:win7 X64.net
2、虛擬機配置debug
1,打開相應的虛擬機,選擇「編輯虛擬機設置」,打開虛擬機設置對話框,以下3d
2,觀察「虛擬機設置」這個對話框的「硬件」->「設備欄」,看看是否有「打印機」或「Printer」,若是有,則刪除該設備。調試
3,選擇「添加」,而後選擇「串行端口」,而後選擇「使用命名管道」,並按以下設置htm
注:
1)使用命名管道,名字默認便可。
2)另外一端選應用程序,即連接windbg。
3)IO模式,可選可不選。
4)完成後,須要確認一下新增的設備是「com1」(若是是中文界面,顯示「串行端口」)。爲對比,非com1時,顯示「串行端口2」。
若是在這個地方,COM口編號不對,後續打開windbg,會顯示「debuggee not connected」。附網上關於該問題的解決方案:
「- -我也遇到了這個問題,剛解決。
你在Edit virtual machine settings裏看下你那個串口是否是叫Serial port 2,若是是,問題就在這裏,就是多了那個2。你把這個串口刪掉,而後把那個printer也刪掉,而後從新添加一個串口就能夠了,這個時候串口就叫Serial port了。」
3、Windbg的設置
1,在桌面上添加一個windbg的快捷方式;
2,右鍵該快捷方式,打開「屬性」對話框,在目標一欄的末尾添加「 -b -k com:pipe,port=\\.\pipe\com_1,resets=0」。
注:李sir的博客就是這麼設置的,但我經過這種方法去打開windbg(右鍵「管理員方式打開」),一直是「Debuggee not connected」。偶然嘗試了下,以下設置,解決了這個問題:
3,在「快捷方式」tab中,選擇「高級」,勾選「用管理員身份運行」。
4、GeustOS設置(該部分徹底同「李sir的博客」)
1,以管理身份打開「cmd」。
2,輸入「bcdedit」
3,設置端口1,命令以下:
[cpp] view plain copy
該處的「1」,對應com口1。
4,複製一個開機選項,命名爲「DebugEntry」,可任意命名。命令以下:
[cpp] view plain copy
5,增長一個開機引導項
[cpp] view plain copy
注:這個ID要填寫上一條命令生成的一串數字或字母。
6,激活debug
[cpp] view plain copy
注:ID以生成的數字或字母串代替。
7,重啓虛擬機,選擇「DebugEntry[debug]」做爲啓動項。
8,選擇好啓動項後,當即回到主機,啓動windbg。只有在GuestOS啓動過程當中,才能鏈接上。
cmd 敲入 g 繼續執行,或使用菜單繼續會自動敲入 g