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

  • 相关阅读:
    Hibernate save, saveOrUpdate, persist, merge, update 区别
    Eclipse下maven使用嵌入式(Embedded)Neo4j创建Hello World项目
    Neo4j批量插入(Batch Insertion)
    嵌入式(Embedded)Neo4j数据库访问方法
    Neo4j 查询已经创建的索引与约束
    Neo4j 两种索引Legacy Index与Schema Index区别
    spring data jpa hibernate jpa 三者之间的关系
    maven web project打包为war包,目录结构的变化
    创建一个maven web project
    Linux下部署solrCloud
  • 原文地址:https://www.cnblogs.com/DragonStart/p/8241895.html
Copyright © 2011-2022 走看看