1,目的
有时候,程序由于某些原因并不能在开发机上运行(如可能加载有问题的驱动,运行环境在远处的客户那等),这就需要用到远程调试的技术。
2,步骤
我这里就演示在虚拟机里运行程序,然后在本机物理机的vs2008下断点调试。在远程机器上只要网络能连接,是一样的效果。
一:远程机器的环境设置
①把开发机上vs2008安装目录中的Remote Debugger文件夹中的远程调试监视器文件夹发给远程机器,我这里就是拷贝到虚拟机中。
拷贝对应远程机器系统位数的文件夹,x64(64位)或x86(32位)。
1.拷贝C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\Remote Debugger\x86目录到被调试机
②关闭远程机器的防火墙。
③在之前拷贝的文件夹中新建一个txt文本,写下如下内容,并重命名为test.bat,运行这个批处理文件。
msvsmon.exe /noauth /anyuser /nosecuritywarn
这样vs的远程调试监视器就运行起来了。
二,开发机工程设置。
①建立一个vs2008 win32控制台程序 TestRemote,代码如下:
②把debug编译后的整个debug文件夹(实际需要exe和pdb文件)拷贝到虚拟机中。 我这里放到C盘根目录。
③配置工程属性-“调试”页如下:
说明:
远程命令—— 在远程机器或虚拟机中该程序运行文件。
命令参数——就是传给该程序的命令行参数。
工作目录——运行的程序工作目录,一般就设程序所在目录。
远程服务器名称——填远程机器的IP地址或主机名,我这里填的虚拟机的IP。( 注意要保证能和物理机能连接。我在虚拟机里已经和物理机网络进行了桥接,分配了同一个内网的IP地址。)
连接——本机就选不带身份验证的远程访问。
④打上断点F5运行,就可以在物理机的vs2008中跟踪虚拟机中运行的程序了。