[Windbg] 設定 VMWare kernel debugging
最近因為重裝 VMWare 裡的虛擬機器,需要重新設定 kernel debug 的環境。
因此,就順便記錄一下吧~
Step1:首先進入 VMWare 裡的 Windows 7,
在 cmd 命令提示環境下,先執行 bcdedit 看一下目前的開機設定,
通常在 Windows 7 環境下面只會有一個「Windows 開機載入器」:
Step 2:執行 bcdedit /copy {current} /d “Windows 7 Kernel Debug Mode”,
這行指令會複製一份目前的開機設定,並且命名為 Windows 7 Kernel Debug Mode。
Step 3:執行 msconfig,可以看到現在有兩個開機選項。
Step 4:選擇我們新加的開機選項,再選擇進階選項。
將「偵錯」打勾,選擇偵錯連接埠「COM2」後按下「確定」。
這個部分也可以選擇 COM1-4,沒有特別的限制。
Step 5:將 Windows 7 關機。
關機完成後,選擇 VMWare > VM > Settings > Add > Serial Port。
Step 6:選擇「Output to name pipe」
Step 7:選擇連線至 .pipecom_2 這個 pipe(視之前在 Windows 7 選擇的是哪個 COM 而定),
並選定「This end is the server」與「The other end is an application」後,
按下「Finish」結束新增裝置。
Step 8:在 VM Setting > Serial Port 的部分,
要勾選「Yield CPU on poll」,按下「OK」結束設定。
Step 9:重新啟動 Windows 7 這個虛擬機器。
開機後會有兩個開機選項,選擇「Windows 7 Kernel Debug Mode」繼續。
通常啟用偵錯工具的話,可以注意到進入 Windows 的速度會稍慢一些…
Step 10:執行下面這行指令以啟動 windbg remote kernel debugging 模式
“C:Program FilesDebugging Tools for Windows (x64)windbg.exe” -b -k com:pipe,port=.pipecom_2,resets=0
這邊 windbg 的路徑請自行依情形修改,com_2 也要依照之前設定的 COM1-4 來設定。
如果成功的話,應該可以看到如下的畫面:
有時候 kernel debug 連接沒有成功,會看到他停在「Waiting to reconnect…」,
如果等了一下都還沒有連接上的話,可以試著重新啟動 windbg,
再不行的話就連虛擬機器也重新啟動看看,通常就可以了~~