[转]VS2008 VMware联合调试

时间:2022-05-27 17:27:17
一、前期准备:
1. 安装VS2008
2. 安装VM8.0,在安装过程中勾选安装Integrated Virtual Debugger( 有的时候安装之后vs2008不一定会出现VMware的工具栏,这是需要重新安装VMware。如果一直出现vs打开时提示“加载失败,是否移除”,这时需要打上vs2008补丁sp1然后再次重新安装VMware)
3. 创建一个windows操作系统的虚拟机
4. 在windows操作系统的虚拟机中安装VMTools
 
二、配置将要调试的虚拟机:
1. 虚拟机新建一个有管理员权限的帐号, 帐号名必须与本机一样必须设置密码,密码必须与本机同帐号的密码一样。(不然会一直在报 0x80004005的错误)
2. 修改计算机名,必须为网络上唯一。( 这个不需要吧!?
3. 关掉一切防火墙( 包括主机和虚拟机里的)。
4. 修改网络安全选项:
   Run->secpol.msc->本地策略->安全选项->网络安全:
   Lan管理器身份验证级别,改为“发送LM和NTLM响应”,如图:

[转]VS2008 VMware联合调试

6. 增加本地共享信任:
   IE->Internet选项->安全->本地Intarnet->站点->高级->添加file://*..host( 这个不需要把!?
7. 如果是vista/window7话,关闭UAC:
   Run->msconfig->工具->更改UAC设置->调至最低
   然后 重启系统
8. 如果是Realtek的网卡需要在“本地连接”里面将“大量传输减负”的特性去掉。
三、配置vs2008:
1. 打开vs2008发现在菜单栏多了条VMware的工作条

[转]VS2008 VMware联合调试
2. 点击上图最后一个按钮弹出如下对话框(我使用的是vm 8.0,只修改了下图中的前面两个和最后那一个也成功了的

[转]VS2008 VMware联合调试

第一项为将要进行调试的虚拟机的.vmx文件。
第二项为将要进行调试的调试器,安装完成后默认的为32位的调试器。如需要需要调试的64位的程序,所以将这个调试器换为64位。( 我觉得这个取决于虚拟机里的系统是多少位的
第三项为远程调试器的名字,需要取成网络唯一。( 这个不需要吧!?
第四项为将要调试的程序,我的虚拟机为Windows7_X64,所以改为C*Ctrl.exe,
    如果是调试普通的exe程序,直接使用默认的设置就可以了。
第五项为共享目录,如果需要可以进行修改,怎样修改有说明。
第六项为虚拟机的帐号和密码,不需要填写,在第一次进行调试的时候可以手动输入。
3.点中Pre-Debug Event弹出如下对话框

[转]VS2008 VMware联合调试

在Copy Files中将我们编译出来64位p11的.dll.ilk.sig三个文件copy到虚拟机的C:\windows\system32中,
这里不能使用相对路径!
上就是对虚拟机和本机vs2008的全部设置。现在使用 中的第一个按钮就可以进行下断点调试了。
 
注:如果本机的网卡是Realtek的,需要在”本地连接” 里面将“大量传输减负”的特性关闭。
 
 
补充:如果主机上没有msvsmon.exe,请在vs2008安装目录下找到Remote Debugger下,将对应rdbgsetup.exe安装一次即可,如果还是没有msvsmon.exe,可将rdbgsetup.exe其他电脑上安装,然后将安装文件拷贝回E:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\Remote Debugger可使用。

文中蓝色字体为本人补充说明。
【参考资料 感谢作者】
1、
msvsmon.exe missing?
2、 使用VS2008+VM8.0在虚拟机中调试程序