WMware+WinDbg双机调试配置
一、WMware WorkStation的配置
1、虚拟机的安装【略】
2、虚拟机里安装Windows系统【略】
3、虚拟机里Windows系统的配置
3.1将打印机设备移除
3.2添加串行端口
3.3创建调试模式
现在创建调试模式:
3.3.1、以管理员方式启动cmd命令行
3.3.2、然后执行下面的命令行
bcdedit /copy {current} /d Windows7-双机调试模式
bcdedit /timeout 10
(注意:“Windows7-双机调试模式”是系统启动是的选项卡名字,这个名字之间如果含有空格请在两端添加英语格式的双引号,然后设置开机选择进入方式的等待时间为10秒)
3.3.3、重启Win7 以双机调试模式启动
重新启动Windows7虚拟机,在开机时有选择如下界面,这个界面是让我们选择启动方式,其中“Windows7-双机调试模式”是我们刚增加的启动方式。选择这个启动方式并进入Window7虚拟机的系统。
3.3.4、接下来在管理员模式启动cmd命令行执行以下命令行
①关闭强制数字签名
bcdedit -set loadoptions DDISABLE_INTEGRITY_CHECKS
注意:关闭时使用
bcdedit -set loadoptions DENABLE_INTEGRITY_CHECKS
②开启系统测试模式
bcdedit /set testsigning on
注意:关闭时使用
bcdedit /set testsigning off
③开启调试功能
bcdedit /debug ON
bcdedit /bootdebug ON
3.3.5、查看我们的调试配置是否与预想的一致
bcdedit /dbgsettings
这里查看到的结果是这样的:
这表示使用串口的com_2进行通信,波特率是115200 bit/s
注意:debugport:2中的2是指使用Windows7虚拟机的串行端口COM2,baudrate:115200是指波特率为115200。另外,这些设置都可以在WINDOWS+R执行msconfig来使用图形化界面操作。
这里需要确认的是,vmware为windows7虚拟机添加的端口应当与此处的端口号一致,因为只有二者匹配了才能正确的建立调试的通信。
如果二者不一致,可以通过如下命令进行调整:
bcdedit /dbgsettings serial debugport:1 baudrate:115200
3.3.6、重新启动windows7虚拟机,选择调试模式选项卡并进入系统
此时的开机界面是这样的:
可以看到,第二个选项相比之前多了“[启用调试程序]”字样。
从现在开始,如果选择“Windows7-双机调试模式”进入系统,需要使用Windbg与之进行通信才行,否则系统启动时会由于出发调试中断等待Windbg连接,让Windbg使用“g”命令才能继续启动。
到目前为止,使用windbg进行调试Windows7虚拟机中Windows7虚拟机的设置已经OK,只需要在开机时选择“Windows7-双机调试模式”进入系统,然后等待Windbg的连接即可。
因此,可以在此次关机后创建虚拟机的快照,方便以后的使用。
二、WinDbg的配置
1、WinDbg的安装【略】
2、WinDbg配置
2.1 启动方式
为了能够方便的打开windbg,应当设置windbg的快捷启动方式。因为这样,可以将命令行一并设置到快捷方式中,后续使windbg用双机调试Windows7时只需要双击此快捷方式就可以按照预先设置的命令行参数运行windbg。
将桌面上新产生的**快捷方式右键属性设置如下**:
将:
“C:\Program Files (x86)\Debugging Tools for Windows (x86)\windbg.exe”
修改为:
“C:\Program Files (x86)\Debugging Tools for Windows (x86)\windbg.exe” -b -k com:port=\.\pipe\com_2,baud=115200,pipe -y SRV*D:\VM\Win7(32)Symbols*http://msdl.microsoft.com/download/symbols
注意:
“C:\Program Files (x86)\Debugging Tools for Windows (x86)\windbg.exe”
是本快捷方式关联的windbg可执行文件的绝对路径。
\.\pipe\com_2
是虚拟机添加串行端口时使用的命名管道名称,这个要与之前Windows7虚拟机的设置一致。
-y SRV*D:\VM\Win7(32)Symbols*http://msdl.microsoft.com/download/symbols
D:\VM\Win7(32)Symbols是我们使用的符号文件默认保存位置,可以根据自己喜好进行设置。
设置完毕后,我们双机这个快捷方式,当弹出的窗口显示“Waiting to reconnect…”时,就开启Windows7虚拟机,并且在启动画面选择“Windows7-双机调试模式”。
之后在Windows7虚拟机启动直到进入桌面的过程中windbg会有多次遇到int 3断点,只需要在windbg的命令栏输入“g“命令即让Windows7虚拟机继续启动,直到进入桌面。
2.2 WinDbg执行以下命令
!sym noisy **详细符号加载(noisy symbol loading)显示。
给个示例:
2: kd> !sym noisy
noisy mode - symbol prompts on
.reload命令删除指定模块的所有符号信息,并且按需要重新加载这些符号。某些情况下,该命令也会重新加载或卸载模块本身。/f 强制调试器立即加载符号。该参数会覆盖延迟符号加载。更多信息,查看下面的注释节。
2: kd> .reload /f
2.3 测试是否成功加载符号文件
参考文章: 内核调试之双机调试环境的搭建.