目标:VM –>\\.\pipe\com_1(HOST) <--WinDbg/VS2012
利用PIPE实现VM和VM所在的HOST通讯,从而实现在HOST上安装的WinDbg程序能够调试VM操作系统。
http://msdn.microsoft.com/en-US/library/windows/hardware/jj200334(v=vs.85) ß设置HOST主机调试VM操作系统内核。
http://msdn.microsoft.com/en-US/windows/hardware/hh852360 Debugging Tools, Symbols, SDK & WDK.
基本步骤:
1、 HOST上安装VMware Player,并安装虚拟机guestOS,设置guestOS调试模式启动菜单,并指明调试端口为COM1:
win2k3一下如下图,更高版本:bcdedit /debug on bcdedit /dbgsettings serial debugport: n baudrate: 115200
2、 HOST上的VMware Player设置guestOS的COM1口输出到HOST的\\.\pipe\com_1,并指明对端为Application:WinDbg
3、 HOST上安装WinDbg,快捷方式追加参数 -k com:port=\\.\pipe\com_1,baud=115200,pipe
4、 下载Symbols并安装C:\,设置环境变量并配置WINDBG后大功告成:
_NT_SYMBOL_PATH=c:\symbols*http://msdl.microsoft.com/download/symbols
WINDBGàFileàSymbol File Path: srv*c:\symbols*http://msdl.microsoft.com/download/symbols
5、 现在WINDBG是SDK和WDK的一部分,新版本的VS2012也可以作为内核调试器,详细见Debugging Using Visual Studio。有关KMDF(Kernel Mode Driver Framework)的相关资讯见Windows Driver –Windows 驱动程序入门。
设置好环境变量的调试器成功连接后截图如下(如果你看不到调式端OS中断,按ctrl+break终端;按G键继续……)