在网上找了好多资料才把这个调试环境搭好,下面总结一下:
先说明两个概念:
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中设置目标机上的路径即可。关于这一条可能还有其他的解决办法,但我没找到,希望有其他的解决方法的朋友留言。