前言: 
有时候我们Dev(开发人员)需要debug tester(测试人员)或者customer(客户)的环境,可tester的机器上没有Code,是不是有点着急? 而且是多版本应用且tester 发现了问题需要我们去查看的时候, 这个时候怎样能够第一时间帮助tester 找到问题的原因呢?

不要着急, 这里VS给我们提供了一个很好的功能: Remote Debugger, 下面就好好的来说下这个功能吧.

使用场景:

假设现在有A、B两台机器,其中A是Dev的开发server(这里是在win server环境去开发)装着Visual Studio以及Code,B机器上是Tester部署着我们的应用。

第一种方式: Windows Authentication

1、在A机器上的Visual Studio安装目录下找到Common7\IDE\Remote Debugger文件夹, 并将其Copy到B机器上。如下图:​

2、运行B机器上Remote Debugger下与本机向对应的目录下(x86  or x64 )的msvsmon.exe文件如下图:(注意以管理员的身份运行msvsmon.exe)

Remote Debugger启动时默认选择的认证方式就是"Windows Authentication",启动后我们可以看到如上图所示的一条信息,红框圈起来的其实是server name,其中,Administrator是登陆B机器的用户名称,TEST28-181是B机器的名称。

3. 打开Tools > Options菜单项,点击"Permissions…"按钮,在弹出的对话框中确认当前用户有Debug的权限,如下图:

到此需要调试的机器B已经设置完毕。

4、返回到A机器上,在打开的源码中选择Debug菜单中的Attach to Process子菜单项,在弹出的对话框中的Qualifier  文本框中输入Step 3 里的Server name,然后点击"Refresh"按钮,选中需要调试的的进程,点击Attach按钮,如下图:​(PS: 因为怕涉及到公司一些东西, 所以图片中有些地方直接加了马赛克)

5. 这时候返回到B机器上,你会在Remote Debugger中看到一条类似如红框所示的信息,这说明Remote Debugger已经连上了。

剩下的,你就可以像在本机一样,痛痛快快的debug了,真的是毫无违和感呢。

最后重要的一点:采用Windows Authentication​的话,两台机器的账户名和密码要是一样,如果遇到不一致的情况,可以通过新建用户或者修改密码的方式来解决。

第二种: No Authentication

1、选择认证方式为“No Authentication”,check “Allow any user to debug”。

出现一下内容就对了:

2、VS -> DEBUG -> Attach To Process,然后就如下图进行设置,端口要与Remote Debug Option配置成一样。

Refresh之后Avaliable Processes有值并且Debug Monitor会出现xxx connected.

OK,Attach To Process之后,就可以随意的Debug了。

最后重要的一点:采用No Authentication​的话,两台机器的防火墙都需要关掉。

写在最后: 如果将自己code build 过后的dll 替换到tester 的环境上仍然无法debug 的话, 就要考虑给dll 打强名了, 具体方法: http://www.cnblogs.com/darrenji/p/3654650.html

VS 开发工具中的Remote Debug 功能远程调试程序经验分享的更多相关文章

  1. [Reomting Debug] 巧用VS 的remote debug 功能远程调试程序 经验分享.

    前言: 有时候我们Dev(开发人员)需要debug tester(测试人员)或者customer(客户)的环境,可tester的机器上没有Code,是不是有点着急? 而且是多版本应用且tester 发 ...

  2. Eclipse—怎样为Eclipse开发工具中创建的JavaWebproject创建Servlet

    在博客<在Eclipse中怎样创建JavaWebproject>中图文并茂的说明了Eclipse中创建JavaWebproject的方法,本篇博客将告诉大家怎样为Eclipse开发工具中创 ...

  3. ueditor1.4.3在.net环境下的vs开发工具中集成经验

    Ueditor是个非常不错的在线富文本编辑器,几个项目一直使用它.近期想更新版本号.发现新版1.4.3与旧版的部署方式全然不一样了.官网文档介绍的是直接放在iis下的部署说明,没有提到在vs开发工具中 ...

  4. 报表开发工具中开放的部分图表js接口列表

    1.. 描述 报表开发工具FineReport 8.0版本中开放了部分图表js接口,在具体应用的过程中很多人都不知道这些接口到底有什么作用,该怎么应用,所以根据我自己的应用在下面归纳了这些新开放js接 ...

  5. 报表开发工具中mysql数据库连接编码转化失效解决方案

    1. 问题描述 在报表开发工具FineReport中,mysql数据库连接通过数据连接编码转换进行编码的转换,在通过报表录入往数据库中录入中文数据的时候,总是出现乱码,这个该怎么解决呢? 2. 解决方 ...

  6. 详解WPF Blend工具中的复合路径功能 ( 含路径标记语法 )

    写此文章的目的是为了简单分析一下 Blend工具中提供的"复合路径"功能.有人在我的博文中留言问我复合路径的问题.  稍微琢磨一下,觉得应该是对的.因此贴出来和大家分享.有不对的说 ...

  7. 如何使用IDEA开发工具中右键中的Git图形化工具

    首先,你的项目一定是git服务器上面down下来的,下面来演示如何使用IntelliJ IDEA 开发中在鼠标右键中提供的一个非常方便的图形化Git管理工具: 这里使用的IDEA开发工具的版本是 In ...

  8. 微信小程序开发工具中快捷键

    微信小程序开发工具表面上是没有更多的样式类的工具,例如缩进.隐藏代码什么的. 现在总结一下小程序开发工具常用的一些快捷键: 格式调整 Ctrl+S:保存文件Ctrl+[, Ctrl+]:代码行缩进Ct ...

  9. ios开发总结,日常开发:ios开发功能收集,经验分享等等(不断更新中。。。)

    github资料学习和下载地址:https://github.com/niexiaobo/MyDailyDevelopmentNotes ios 学习模块 ios APP 日志管理的重要性: 一个功能 ...

随机推荐

  1. openni和骨架追踪 rviz查看---34

    原创博客:转载请标明出处:http://www.cnblogs.com/zxouxuewei/ 1.安装深度相机的NITE. 首先下载NITE-Bin-Dev-Linux-x64-v1.5.2.23, ...

  2. Redis安装及基本配置

    一.Redis介绍 1.Redis是一个key-value存储系统 2.官方站点http://redis.io 3.Redis和Memcached类似,但支持数据持久化 4.支持更多value类型,除 ...

  3. LeetCode() Valid Anagram 有问题!!!

    为什么第一个通过,第二个不行呢? class Solution { public: bool isAnagram(string s, string t) { if(s.size() != t.size ...

  4. mysql数据库从库同步延迟的问题

    在从服务器上执行show slave status;可以查看到很多同步的参数,我们需要特别注意的参数如下,希望文章对各位会有所帮助. 在从服务器上执行show slave status;可以查看到很多 ...

  5. HDU-3853 LOOPS(概率DP求期望)

    题目大意:在nxm的方格中,从(1,1)走到(n,m).每次只能在原地不动.向右走一格.向下走一格,概率分别为p1(i,j),p2(i,j),p3(i,j).求行走次数的期望. 题目分析:状态转移方程 ...

  6. poj3259 最短路判环

    题意:有一些点.一些道路和一些虫洞,道路是双向的,连接两点,花费正的时间,而虫洞是单向的,连接两点,可以使时间倒退,求是否能够回到过去. 只要明确回到过去其实就是当出现一个负环的时候,不断沿这个环走, ...

  7. CSS3卡片旋转效果

    HTML: <div id="rotate"> <div id="rotate_wrap"> <div id="fron ...

  8. 黑马程序员——JAVA基础之简述多线程,两种创建多线程的方式

    ------- android培训.java培训.期待与您交流! ---------- 多线程: 进程和线程: 进程:是一个正在执行中的程序.每一个进程执行都有一个执行顺序.该顺序是一个执行路径,或者 ...

  9. dede数据库文件导入失败的可能原因是数据表前缀不同,这里的失败指的是mysql添加了数据,但后台不显示

    利用dede提供的数据备份还原功能,还原数据,出现失败的可能原因是数据表前缀不同,改过来就可以了

  10. 用js实现导航菜单点击切换选中时高亮状态

    随着用户点击导航或菜单上不同的页面,出现此选项高亮显示或变为一个新的样式是经常用到的.实现它所用的原理就是通过js中的location.href得到当前页面的地址,然后在与导航上的链接地址匹对,相同的 ...