环境:
主机:Win7
虚拟机:VMware 11.1.0 build-2496824
虚拟机内操作系统(又称GuestOS):Win7
WinDbg:适合调试机的相应位数的版本就可以。
目录
本文包括五部分,前三部份不分先后顺序,先配置哪部分都可以:
一、配置VMware的管道虚拟串口
二、配置GuestOS的启动项
三、配置WinDbg
四、调试
五、常见问题
一、配置VMware的管道虚拟串口
调试机与被调试机用串口连接,但是在被调试机是虚拟机的情况下,就不可能用真正的串口来连接了,但是可以在虚拟机上生成一个用管道虚拟的串口。
设置步骤如下:
1、虚拟机关闭状态下,选择编辑虚拟机设置。
2、选择硬件选项卡,移除打印机,因为打印机占了一个串口,如果不删除则需要使用COM_2作为命名管道。
3、添加一个串行端口。
3.1、点击添加按钮,在弹出窗口,选择串行端口,单击”下一步“按钮。
3.2、选择输出到命名管道,单击”下一步“按钮。
3.3、如下设置,单击”完成“按钮。
命名管道输入:\\.\pipe\com_1
该端是服务器。
另一端是应用程序。
勾上启动时连接。
3.4、回到如下界面,勾选I/O模式,轮询时主动放弃 CPU(Y),点击”确定“按钮。<我测试的勾上和不勾上,都可以,不知道区别,那就勾上吧。>
开启虚拟机,进入系统,配置GuestOS Win7系统的启动项。
1、以管理员身份运行cmd
2、键入bcdedit命令,查看当前启动项,输出如下:
刚刚安装的,一般只有一个标识为{current}的启动加载器是当前的启动配置。
3、建立一个新的启动项。
bcdedit /copy {current} /d "Windwos7"
4、设置新的启动项。
bcdedit /debug ON
bcdedit /bootdebug ON
5、查看当前的调试配置:
bcdedit /dbgsettings
一般来说,会显示出使用的第一个串口,波特率为115200bps,和期望的一致,不需要修改。
6、选择菜单的超时,我设置为10秒:
bcdedit /timeout 10
7、重新启动,当需要调试时就用调试模式进入。
三、配置WinDbg。
WinDbg安装在调试机上,下载安装与调试机位数相同的WinDbg。
1、设置WinDbg的启动参数,使之连接一个管道,并把这个管道当作一个串口来处理。
调试机上WinDbg的启动参数,使之连接一个管道,并把这个管道当做一个串口来处理:
方法一:cmd窗口中,在windbg.exe所在路径下执行,windbg.exe -b -k com:port=\\.\pipe\com_1,baud=115200,pipe
方法二:桌面上建立一个windbg.exe快捷方式,单击右键并选择属性,在快捷方式中,在“目标”中的".....windbg.exe"后面增加前面的启动参数。注意:windbg.exe的全路径一般是双引号引住的,但是后面的命令行参数应该放在引号外。
详细操作如下:
1.1、命令行方式
在WindDbg.exe路径执行命令。
(1)、输入命令:cd C:\Program Files (x86)\Debugging Tools for Windows (x86)
(2)、输入命令:Windbg.exe -b -k com:port=\\.\pipe\com_1,baud=115200,pipe。
1.2、快捷键方式
建立一个WinDbg的快捷方式,修改其目标,步骤如下:
(1)、开始,程序,选择WinDbg,右键,选择属性。
(2)、目标,双引号括着的是WinDbg.exe完全路径,右侧双引号后面添加一个空格和参数 -b -k com:port=\\.\pipe\com_1,baud=115200,pipe
(3)、添加桌面快捷方式,以后就不用每次都配置了。
2、为了能实现源代码调试,必须设置符号文件路径和源文件路径。
2.1、Symbol File Path(设置符号路径)
符号路径可以有多个,中间用分号分隔。
windbg有一个强大的功能,可以自动到Microsoft的服务器上下载符号文件。但是需要在符号路径下做一下设置:
路径srv*c:\symbols*http://msdl.microsoft.com/download/symbols中
c:\symbols为本地目录,从服务器下载的符号会存储在此目录中,你可以设置为你想存放的目录中。http://msdl.microsoft.com/download/symbols为服务器路径。如果相关符号表没有在本地目录系找到的话,就会自动在指定的服务器下载。分号后面添加自定义驱动模块的符号文件的路径。
2.2、Source File Path(设置源码路径)
设置要调试的源码所在路径即可。
四、调试
以上三步,一、配置VMware的管道虚拟串口,二、配置GuestOS的启动项,三、配置WinDbg均设置完成后,打开虚拟机,启动到调试模式下的Windows之后,通过命令行或快捷方式打开WinDbg,就可以开始调试了。WinDbg.exe会显示连接上的信息。
断点弹出后,就可以设置新的断点,同时可以打开Watch窗口观察和修改所有变量的值。设置断点、单步进入和单步前进等操作都和VC是一样的。
常用操作:
1、在kd>后输入g后按回车键,能使中断的程序继续执行。
2、选择菜单"Debug->Break"使当前被调试系统中断下来。这是设置断点的前提条件。
3、将光标移动到代码某一行上按下F9键设置一个断点。请注意设置断点之前,系统必须已经中断;否则无法设置和修改断点。此外,再按一次F9键可以取消断点。
4、按F10单步前进。遇到函数时(call指令),不会进入函数内部,而是继续函数返回后的执行。
5、按F11键单步进入。遇到函数时(call指令),进入函数内部继续单步执行。
五、常见问题
1、Could not start kernel debugging using com:port=\\.\pipe\com_1,baud=11520,pipe parmeters,Win32 error On2系统找不到指定的文件
检查一下设置,尤其注意以下三点:
(1)、虚拟机右下角,串口灯要是亮的,不是灰色的。
(2)、主机COM1设置是否正确。
在WinDbg中,kd> 多次输入g回车,直到变成Debuggee is running...时,被调试机就可以正常操作了。
以上就是win7系统双机调试的操作,有需要的用户可以参照上述方法,希望今天的分享能大家带来帮助。
到这里本文关于win7系统双机调试的操作方法就结束了,如果你的电脑也遇到了这种情况,可以试试上面的方法哦。还有不明白的小伙伴可以留言给小编来帮你们解惑。