先说概念

开发机:将编译好的程序部署到目标机器上执行。配置 VS 工程,建立与目标机的连接,开始远程调试。

目标机:负责执行目标程序。安装和运行远程工具 (Remote Debugger),等待来自开发机的连接请求。

环境要求

目标机和开发机必须通过网络、工作组、家庭组连接,或者通过网线直连。即可以直接在开发机上访问到目标机上的共享文件夹。

目标机的准备

首先在合适的地方创建一个文件夹(Remote),之后再选择“属性”->“共享”。再点击共享,选择用户(这里建议选择Everyone),再点击“共享”,即可创建一个共享文件夹。

安装Remote Debugger

要在目标机上安装Remote Debugger,这里提供两种方法(推荐方法一):

方法一:

在你本地的 VS 安装目录下找到 msvsmon.exe,此文件就是 Remote Debugger。

X86的和X64的默认安装位置如下:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\Remote Debugger\x86\msvsmon.exe
C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\Remote Debugger\x64\msvsmon.exe

可以共享该目录,在目标机上直接运行 Share Folder 中的 msvsmon.exe 即可。

也可以把 msvsmon.exe 所在的整个目录 Copy 到目标机上。

这里同样需要注意,要与目标机的操作系统位数匹配。

方法二:

去微软官网下载远程调试工具。

注意,一定要安装与 VS 版本和目标机操作系统匹配的远程工具。

下载地址:https://docs.microsoft.com/zh-cn/visualstudio/debugger/remote-debugging#download-and-install-the-remote-tools

配置Remote Debugger

首次打开安装好的Remote Debugger,会出现如下所示的配置页面:

如果你不清楚你的网络连接方式,比较保险的做法是把所有框都勾选上。

点击配置远程调试按钮之后,会出现如下窗口,代表 Remote Debugger 正在等待来自开发机的连接。

这里可以点击 Tools > Options 菜单,做一些额外的参数配置。

时可能会由于防火墙或者认证等原因,导致连接不上的问题,最极端的方法是完全关闭它们。虽然官方出于安全考虑,并不建议这么做。

假如你确定网络没有任何风险,那么可以关闭两边机器的防火墙。上面窗口中,也可以选择无认证方式。

最大空闲时间设置为 0 代表永远不会超时,一直处于等待状态。

TCP/IP 端口号这里默认给出的是 4022,你可以更改,但一般无需这样做。

关于默认端口号,不同的 VS 版本,是不同的,具体可参考https://docs.microsoft.com/zh-cn/visualstudio/debugger/remote-debugger-port-assignments

开发机的准备

在文件管理器中输入“\\(目标机的IP地址)”,然后登陆完成后,就能看到目标机上的共享文件夹了。如果你没看到,请检查你的网络或者防火墙。

在开发机上用VS打开项目,并选择调试→[项目名]属性

在“调试”页勾选“使用远程计算机”,并输入目标机的IP地址:

切换到“生成”页,并修改输出路径为目标机上的指定路径,如下图所示

设置完成后,保存。

于是我们就可以开心的远程调试了~

参考链接

  1. https://docs.microsoft.com/zh-cn/visualstudio/debugger/remote-debugging-csharp
  2. https://zhuanlan.zhihu.com/p/29183052

补档 VS远程调试的更多相关文章

  1. Xdebug文档(七) 远程调试

    Xdebug提示调试客户端接口与PHP运行相联系.该章节解释如何设置PHP与xdebug,并推荐一些客户端. 介绍 Xdebug的远程调试器允许你检查数据结构,交互式地穿过和调试你的代码.该协议已经开 ...

  2. [视频教程] 配置vscode的PHP自动补全提示与使用Xdebug进行远程调试debug

    默认下载安装完的vscode并不能准确提示和检测PHP的语法错误,需要手动指定一下本机的PHP程序路径.按下面的操作配置完后就能在文件保存的时候检测语法有无错误.打开文件->首选项->se ...

  3. 微信公众号开发之VS远程调试

    目录 (一)微信公众号开发之VS远程调试 (二)微信公众号开发之基础梳理 (三)微信公众号开发之自动消息回复和自定义菜单 前言 微信公众平台消息接口的工作原理大概可以这样理解:从用户端到公众号端一个流 ...

  4. mono的远程调试

    mono可以让.net程序运行在linux平台上.于是.net程序员有了mono之后就转身跨平台了.但开放环境往往还是在windows下,于是有了这样的需求,是否可以用windows下的源码来实机调试 ...

  5. c++ builder xe2 (Embarcadero rad studio) 远程调试 同样适用于 delphi 远程调试 教程

    转载:http://www.cnblogs.com/zhangdongsheng/p/3411056.html 每次要远程调试的时候都要看半天的xe2英文帮助文档,今天正好有点时间,把它写下来. 一. ...

  6. PHP使用Xdebug进行远程调试

    PHP使用Xdebug进行远程调试 翻译 by mylxsw posted on 2014/07/14 under 技术文章 > 编程语言 Xdebug提供了客户端与PHP脚本进行交互的接口,这 ...

  7. Mobile Web 调试指南(2):远程调试

    原文:http://blog.jobbole.com/68606/ 原文出处: 阿伦孟的博客(@allenm ) 第一篇中讲解了如何让手机来请求我们开发电脑上的源码,做到了这步后,我们可以改完代码立即 ...

  8. chrome 远程调试(转)

    http://www.tuicool.com/articles/ZJfeAzi 由于 appspot.com被墙,一般调试不成功. 随着智能手机的普及,移动设备的浏览器功能越来越强大,我们用手机上网时 ...

  9. 使用 桌面的 chrome 远程调试 Android 的页面

    手机浏览器是没有开发者工具的,所以调试手机网页是非常麻烦.使用 chrome 的远程调试功能可以像调试桌面端那样调试手机页面. 准备 手机端:chrome for Android, 安装谷歌浏览器 桌 ...

随机推荐

  1. 9. Palindrome Number 回文数的判断

    [抄题]: Determine whether an integer is a palindrome. An integer is a palindrome when it reads the sam ...

  2. java 解析xml(dom4j.jar)

    先导入jar包 <?xml version="1.0" encoding="UTF-8"?> <companys> <compan ...

  3. SqlServer------范式小结

    说明:大多数初学者对于关系数据库中的范式很是头疼,我本人也是,所以今天又看了视频,总结了一下内容,尽量语言通俗易懂,少用专业术语以及概念. 首先要理解几个键值. 超键:在关系模式中,能唯一标识元组的属 ...

  4. nodelet的理解

    1.介绍 nodelet包可以为在相同进程中的多个算法之间实现零拷贝的传输方式. 这个包也提供了实现一个nodelet所需的nodelet基类以及用于实例化nodelet的NodeletLoader类 ...

  5. 一步到位带你入门Selenium

    其实,关于这篇文章发布前还是有很多思考的,我是不想发布的,因为关于selenium的文章博客园里面有很多的介绍,写的详细的,也有写的不详细的,那么我的这篇文章的定位是基于selnium从开始到最后的框 ...

  6. Binder的工作机制浅析

    在Android开发中,Binder主要用于Service中,包括AIDL和Messenger,其中Messenger的底层实现就是AIDL,所以我们这里通过AIDL来分析一下Binder的工作机制. ...

  7. MongoDB整理笔记のGUI操作

    值得幸运的是,其实MongoDB也有像类似于PL/SQL一样的界面操作工具操作MongoDB. 下面就来介绍几款不同的界面工具,大家各取所需! MongoVUE 主页:http://www.mongo ...

  8. utf-8是否带签名 乱码问题。

    Encoding utf8 = new UTF8Encoding(true); 参数表示是否带签名, 但此是否带签名在WriteAllBytes 无效,生成的永远是无签名的. 但在WriteAllTe ...

  9. 使用C#代码发送邮件,不完整的demo

    作为一只入行不久的小菜鸟,最近接触到利用C#代码发送邮件,做了一点小的demo练习.首先,需要配置,这边我做的是QQ邮箱的相关的练习,练习之前,首先应该解决的问题肯定是关于服务器的配置,这边偷一个懒, ...

  10. c++基类指针指向继承类调用继承类函数

      类里面重载运算符>>, 需要使用友元函数,而友元函数,不能作为虚函数. 所以,基类指针无法直接调用继承类里重构的 >>  ; 使用类转换,能解决掉,基类指针 调用 继承类 ...