VS2008远程调试方法 下载本文

内容发布更新时间 : 2024/5/4 2:37:17星期一 下面是文章的全部内容请认真阅读。

VS2008远程调试方法 分类: C&C++ 2011-08-03 16:24 2057人阅读 评论(1) 收藏 举报

microsoft防火墙debuggingcommandtoolsexe 在网上找了好多资料才把这个调试环境搭好,下面总结一下: 先说明两个概念: 1. 目标机:远程需要调试的机子,也就是被调试程序exe所在的机子,该机子可以安装VS2008或者不安装vs2008 2. 调试机:安装VS2008的机子,就是存放代码下断点调试的机子,该机子必须安装vs2008 下面介绍具体设置步骤: 目标机: 1. 如果目标机安装了VS2008则直接在【开始菜单】->【Microsoft Visual Studio2008】->【VisualStudio Tools】下面找到Visual Studio 2008 Remote Debugger运行即可;如果目标机没有安装VS2008则需要将调试机上vs2008安装目录下相应的远程debug工具,路径:D:/Program Files/Microsoft Visual Studio 9.0/Common7/IDE/Remote Debugger/x86拷贝到目标机应用程序所在的目录下,然后运行msvsmon.exe 注意:此处如果是要根据你的程序是32位或者64位选择不同的版本,如果是在Win7下面还要以管理员身份运行。如果是第一次运行可能需要设置防火墙,请允许防火墙放行。 2. 选择【Tools】->【Options】设置Debugger参数

这两步后目标机上的设置就完成了,下面介绍调试机上的设置: 调试机:

1. 打开VS2008,打开启动工程属性,在Debugging选项页内,做如下设置

注意:Remote Command 中的路径为目标机上可执行工程的路径;Remote Server Name为目标机的IP地址

设置完成后按F5即可远程调试目标机程序。 需要注意的几个地方:

1. 调试机和被调试机都在一个局域网内,且必须在一个网段

2. 调试机和被调试机必须登录相同的用户,用户名必须一直关闭防火墙或打开相应的端口,一般是4015

3. 最重要的一点,这样设置后有可能会出现在调试机上无法设置断点的情况,提示PDB文件不匹配的问题,我就遇到了这个问题,找了好长时间才解决,我的解决方法是在调试机上编译好应用程序后,然后拷贝到目标机上(确保PDB文件一致),并且在你每次在调试机上重新编译了某些库后必须手动拷贝其DLL和PDB文件到目标机上,然后在Remote Command中设置目标机上的路径即可。关于这一条可能还有其他的解决办法,但我没找到,希望有其他的解决方法的朋友留言。

环境:

同一局域网内,主机和虚拟机远程调试

远程计算机:虚拟机搭的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目录中生成的文件拷贝到远程机子的共享目录中(最好直接把生成目录定位到远程的共享目录,省的每次改动后重新拷贝,如图);