【调试技巧】远程调试

【动机来源】

       跟NicolARun大神一起做项目的时候,windows编程时,本地环境运行没问题的交付代码,把环境打包好后到另外的机器部署时报错。因为是发布版本无法进行错误跟踪,因而远程调试的作用就出来了。远程调试,顾名思义,可以远程调试代码,它的好处是调试机器不需要部署本地机器的所有环境,可以调试发布版代码所出现的问题。

【方法步骤】(暂时只试过VS2010版本)

在本地源代码环境下称为本地端,在发布版本运行机器称为目标端

1、将Visual Studio 2010打开本地端源代码工程,编译没有问题后,将发布版文件夹A拷贝到目标端。

2、在目标端,将发布版文件夹A共享出来。共享方法:右键单击 A文件夹 -> 属性 -> 共享  -> 添加 指定用户,需要的话可以设置权限级别 -> 共享H。并关闭防火墙

3、在本地端 找到VS2010安装路径 -> common7 -> IDE -> Remote Debugger :到达这个路径下,选择对应的系统版本,我这是32位系统,故选择x86文件夹 -> msvsmon.exe,将其拷到目标端中。

4、在目标端中,双击运行 msvsmon.exe ,找到用户名称(一般为名称和端口号组成),如:目标端中名称为:ZHANGYILUN:4015。名称为ZHANGYILUN,端口号为4015。 寻找方法为 在“工具”选项中 选择 无身份验证 那里有名称和端口号 且 允许任何用户进行调试,最长空闲时间设为 0 。将发布版本的程序路径找到并记录,比如,我将发布程序放在目标端桌面,因此,它的共享路径为: //用户名/Users/yilunz(用户名)/Desktop/工程目录/程序名.exe

5、在本地端打开VS2010源代码所在工程,选中 工程名,右击 选择 属性 -> 在Debug配置下 -> 调试 -> 要启动的调试器:选择 远程Windows调试器,选择相应的远程命令、 远程命令参数、工作目录、远程服务器名称、连接。(这里比较头疼的问题就是怎么找到目标端对应路径,其实这个路径就是共享路径)。 因此,

    远程命令://用户名/Users/yilunz(用户名)/Desktop/工程目录名/程序名.exe。目标端发布文件所存放的位置

    远程命令参数:这个是调试时的参数命令行,如果带参数就填相应地参数。如:我的调试程序中需要提供参数 E:\\video-dataset\\test.avi 1。意为:E盘video-dataset目录下的test.avi     

    工作目录:目标端发布文件的文件名。如://用户名/Users/yilunz(用户名)/Desktop/工程目录名

    远程服务器名称:目标端主机的用户名和端口号,格式为:用户名:端口号。如:ZHANGYILUN:4015

    连接:选择 不带身份验证的远程访问(仅限本机)

    设置完后点 应用和确定,转到下一步

6、到这里按F5,开始编译。

END


你可能感兴趣的:(【01】开发语言学习)