环境:
     同一局域网内,主机和虚拟机远程调试
   远程计算机:虚拟机搭的WindowsXP/32(局域网中使用桥接,非局域网使用NAT)
     本地计算机:Windows XP、Win7
1.本机计算机要求:VS2008 IDE 打开被调试代码

2.本机计算机登陆的用户名和密码,必须和远程计算机的登录名和密码相同,仅仅用户名相同,密码不同也是不可以的,会报错。
  (也可以不设相同用户名和密码,貌似只有VC++下可以,在远程调试器选项里设置无验证模式,相应的在项目属性的调试页里设置,见下面调试方案1中VC++的"无验证模式"调试;)

3.远程计算机安装远程调试器:Remote Debugger,可以直接复制VS2008安装目录C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\Remote Debugger下的X86目录,(X64对应64位机);

4.对于本地和远程计算机都要保证DCOM分布式服务是打开的,可以通过控制面板->服务中打开

5.关于本地安全策略:
  开始->程序->管理工具->本地安全策略,安全设置->安全选项->网络访问:本地帐户的共享和安全模式,在Windows XP中本地帐户的共享和安全模式中默认为“仅来宾-本地用户以来宾身份验证”,需改为:经典->本地用户以自己的身份验证",否则可能碰到“VS IDE attach远程进程时报告用户名和密码不匹配的错误”.

6.将本地计算机上要调试程序的debug目录中生成的文件拷贝到远程机子的共享目录中(最好直接把生成目录定位到远程的共享目录,省的每次改动后重新拷贝,如图);

VS2008远程调试_f5

调试方案:

(1)开发环境直接启动远程进程形式
C#、ASP.NET
项目属性--调试,如图设置,在本地VS IDE上按F5即可调试远程机器上的执行文件:
VS2008远程调试_ide_02
VC++

Windows验证模式调试:项目属性--调试,如图设置,在本地VS IDE上按F5即可调试远程机器上的执行文件:

VS2008远程调试_f5_03

无验证模式:项目属性--调试,如图设置,在本地VS IDE上按F5即可调试远程机器上的执行文件:

VS2008远程调试_用户名_04

(调试页面只要修改"连接"这一项即可,注意,不能忘了把远程调试器修改为不验证


(2)附加进程形式(C#和VC++应该一样)

①运行VS远程调试监视器msvsmon.exe,记住图中的liu@WINXP32,格式是"登录用户名@计算机名",同时在远程机器运行要调试的目标程序,如图:

VS2008远程调试_远程调试_05

②VS程序中,调试--附加到进程,点击浏览,选中远程机器,然后在下面的进程列表中,选中需要附加调试的进程,如图:

VS2008远程调试_vc++_06