• 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等方式获取启动路径的时候得到的会是远程路径:

  • 相关阅读:
    String/StringBuffer
    二维数组的打印,查找等
    二叉树的各种遍历
    本地安装部署ActiveCollab
    为什么我们不使用JIRA
    本地安装部署禅道
    本地安装部署Jira
    拖拉插件 drag drop
    C++二维数组 取地址 复制给 二维指针
    解决:CentOS下的 error while loading shared libraries: libmysqlclient.so.16: cannot open shared object file: No such file or dir
  • 原文地址:https://www.cnblogs.com/DragonStart/p/8241895.html
Copyright © 2020-2023  润新知