VS远程调试与附加调试

使用场景

假如你要开发的程序需要运行在独特的硬件上,比如:服务器,然而这个"独特的硬件"却不能给你装VS,这时候远程调试就登场了.

测试工具/环境一览

Key Value
VS版本 VS2017
被调试程序net框架版本 4.0
目标设备系统 Win7 32位
目标设备IP 168.5.16.42
我自己的ip 192.168.11.106

如果远程机器没密码,需要配置这个

测试代码

static void Main(string[] args)
{
    Console.WriteLine("等待调试器...");
    //这个属性用来检测本程序是否被调试器附加,开头这一段一直循环,等待调试器附加上来再继续执行代码
    while (!System.Diagnostics.Debugger.IsAttached)
    {
        System.Threading.Thread.Sleep(100);
    }
    Console.WriteLine("调试器连接成功!");

    var a = 123;
    var b = 222;
    var c = a + b;
    Console.WriteLine(c);

}


根据以上代码编译出程序

发送相关文件到目标设备

VS安装目录下有个远程调试文件夹,里面有多个版本,根据情况,选择一个,我这里选x86的...

然后是你要调试的程序文件,传输过去.

在目标设备,运行远程调试器

notice1:目标机器,是指被调试的机器,不是我们自己运行VS的机器

notice2:可能需要装net4.5与vc的一些运行库,如果运行不起来,尝试把net框架与vc运行库各个版本都装上试试.


在目标机器运行要调试的程序

在本机VS菜单打开附加调试的界面


1:首先输入远程ip和端口
2:输入要调试的程序名称
3:如果找不到,可以勾选左下角
4:选择程序,附加

如果对方面设备有密码,期间可能会让输入密码.如果没有密码,但是不管怎么试都失败,请参考上面配置安全选项.

断点成功


还可以看到变量内容:

其它细节

附加调试也能附加到本机进程

选择目标计算机的时候,默认本机计算机名称,不用改.
调试本机进程不用运行远程调试器.

可以让VS直接生成程序到远程设备

首先共享远程调试目录,给everyone读写权限:

在本机尝试打开

复制这个路径

粘贴到项目属性的这个地方

编译输出


成功!

调试也支持直接远程启动


不建议这么干,程序在使用AppDomain.CurrentDomain.BaseDirectory等方式获取启动路径的时候得到的会是远程路径:

原文地址:https://www.cnblogs.com/DragonStart/p/8241895.html

时间: 2024-10-12 13:47:24

VS远程调试与附加调试的相关文章

[VS工具]远程在IIS附加调试代码

1.首先在服务器以管理员的方式打开msvsmon.exe(一般这个文件路径:C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Remote Debugger\x64) 2.VS设置

pycharm远程linux开发和调试代码

pycharm是一个非常强大的python开发工具,现在很多代码最终在线上跑的环境都是linux,而开发环境可能还是windows下开发,这就需要经常在linux上进行调试,或者在linux对代码进行编写,而pycharm提供了非常便捷的方式.具体实现在windows上远程linux开发和调试的代码步骤如下: 配置远程linux主机信息 选择Tools--Deployment--Configuration 这里选择SFTP就可以 下面这个是因为第一次连接,所以会有这个提示 这里默认根路径就可以

利用GDB在远程开发机进行调试

由于一些环境的制约,很多同学都可能需要在开发机上进行调试,但由于开发机资源的限制,在开发机上直接进行本地的GDB环境配置就成了难题,这个时候其实我们可以利用GDB中自带的gdbserver工具就可以进行远程开发机的调试. gdbserver可以走网络,串口等通信机制,对于网络来说支持ip:prot格式运行.比如你的开发机所在IP是192.168.3.11,你的机器是192.168.3.1,这个时候你首先先下好GDB的源码,然后进入到gdb_src/gdb/gdbserver目录下进行./conf

无法在Web服务器上启动调试,已附加了一个调试器

运行环境:开发环境:Windows7旗舰版64bit.VisualStudio2008 With SP1.ArcEngine10.0.NetFrameWork4.0.IIS7和C#开发语言. 问题描述:ASP.NET调试时遇到的错误"无法在Web服务器上启动调试.已附加了一个调试器. 问题原因:我自己正在调试一个WebService,再次启动另外一个WebService调试则会报出这个错误,VS.NET不允许同时调试两个Web应用程序的. 无法在Web服务器上启动调试,已附加了一个调试器

选择目录,选择文件夹的COM组件问题。在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式。请确保您的 Main 函数带有 STAThreadAttribute 标记。 只有将调试器附加到该进程才会引发此异常。

异常: 在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式.请确保您的 Main 函数带有 STAThreadAttribute 标记. 只有将调试器附加到该进程才会引发此异常. 方法1: class Program { /// <summary> /// 图片资料文件同步 /// </summary> /// <param name="args"></param> [STAThread] //加这个属性,创建并进入单

ios第三方ipa重签名以及xcode附加调试

先dump出ipa,解压出app然后查看是否加密(加壳),如图所示.0表示没有加密.打开包,查看有多少frameworks,因为这些全部要签名的.查看自己的证书信息.security find-identity -v -p codesigning一个个签名.codesign -fs "iPhone Developer:xxxxxxx" libswiftAVFoundation.dylib然后用xcode新创建一个项目生成.打开项目包.拷贝描述文件到要重签名的app下面.然后修改重新签名

移动端Web开发调试之Weinre调试教程

在设计师与前端开发人员的努力下,一个WebApp出炉了,可是测试人员说了一堆的问题:某某机型下页面表现不一致,某某系统下页面如何如何,某某系统浏览器下页面怎么怎么滴.看着满满的测试汇总文档,我们曾经在一个又一个知名或不知名的手机终端上重复着这些工作:仔细的排查代码,alert可疑的变量,甚至不惜重构来尝试解决这种不一致的问题.虽然说Android 4.0+以上的移动设备支持桌面版Chrome远程调试,而且在Android 4.4以下也仅限于预览Chrome手机版浏览器内部效果,我们无法在问题浏览

cocos2d-js 调试办法 断点调试 Android真机调试

一 使用浏览器chrome打开程序,进行调试.跟普通js程序一样. 要么自行搭建服务器,利用python脚本,或者用其他服务器程序(LAMP或XAMPP).然后用浏览器打开服务器地址. 要么直接使用cocos提供好的命令行:cocos run –p web 浏览器调试好处是,方便,对于小程序或者非native代码是非常有意义的.但部署到真机后遇到的问题,这就无法解决了,而且一些native代码也无法调试. 二 使用firefox远程调试. 因为cocos2d-js使用spidermonkey作为

内核调试之双机调试环境的搭建

前言 在进行内核学习/编程之前需要创建属于自己的双机调试环境.通过不断的查阅资料和亲身实验,总结了使用Visual Studio 2017或windbg进行调试的经验. 内核调试需要使用一台计算机用于调试,另一台计算机用于使用调试器来调试之前的计算机.为了能在同一台计算机上进行内核调试,通常使用虚拟机来运行被调试的计算机.另外使用虚拟机运行被调试的机器,会比较安全,因为虚拟机可以随便的使用,无需担心调试过程中导致的系统损坏.而调试器所在的计算机通常使用物理机. 为了简单叙述,我们将设置分成两个部