使用VS远程调试其他电脑上安装的软件
今天在用户的一台机器上遇到了很奇怪的问题。一个按钮点击时概率性的第一次点击无反馈。
因为是概率性的,概率又很低,而当初在设计Log时又设计的是必须重启软件才会生效log开关;
所以这里使用当时release编译出的产物+调试产物配合远程调试来跟踪问题。
需要用到的东西:
一、被调试的机器安装Remote Debugger
在VS安装的电脑里进入以下目录,如果是2017的VS找对应的2017文件夹。我的是Enterprise版本,找对应的文件夹就行。比如preview版本的就找preview等等。32位的程序就拷贝X86的目录到对应的软件机器上,64位的就拷贝x64用于调试。
目录如下:
C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\Remote Debugger
C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\Common7\IDE\Remote Debugger
在需要被调试的机器上启动目录下的msvsmon.exe 程序。我保持了默认、点击配置远程调试。并在弹出的UAC中选择是。
右下角图标通知栏就会有一个下图的图标,如果没有,在收起来的图标栏里找一下。这个就是调试工具,用于安装在被调试的机器上。
双击打开调试器。选择工具=》选项=》我关闭了身份验证,选择无身份验证,设置最长时间为999999。当然您也可以设置windows 身份验证,但是我调试时间比较短,而且只是调试的时候打开这个软件,所以我设置了无身份验证,点击确定。
我是在同一个局域网之内的,如果不是同一个局域网,看是否有外网独立IP。或者使用花生壳之类的转发,也可以。
二、在VS中打开对应的代码并附加远程调试的进程。
在对应的代码工程中,点击菜单栏中的调试=》附加到进程=》连接目标=》查找=》找到下面的1个连接=》点击选择
如果列表中没有,请检查是否在一个网络之内。或者是否能访问到这个机器。在cmd下用ping的方式验证一下,是否可以连通IP地址。
如果选择成功之后,进程列表就会刷新,然后选择你需要调试的进程,点击附加,如果没有你要的进程,请在需要被调试的机器上确认是否进程存在,然后再调试的机器上点击刷新。找到需要调试的进程,点击附加。就可以了。
三、在VS中使用模块加载添加断点
PS:VS没有运行DEBUG是没有这个菜单的
VS附加进来之后。如果没有对应版本调试使用的pdb文件是没有办法打断点调试的。
再运行起来的VS中点击调试=》窗口=》模块,用于附加调试。
再这个模块功能中找到你对应的exe和DLL。然后看符号状态,是否是已加载符号,如果不是,则右键点击对应的行,选择加载符号,选择代码对应的pdb文件。一定要注意,代码和应用程序和PDB文件要能对应上,否则没有办法调试。这个可以再每次出版本提交代码的时候。再SVN或者git上做个记录,把pdb产物也提交上去做备份。
通过以上步骤,就可以正常再你的代码中增加断点,并且通过操作调试拉。
我创建了一个C#相关的交流群。用于分享学习资料和讨论问题,欢迎有兴趣的小伙伴:QQ群:542633085
使用VS远程调试其他电脑上安装的软件的更多相关文章
- 反Secure Boot垄断:兼谈如何在Windows 8电脑上安装Linux
感谢HQSQ的投递一.自由软件基金会的呼吁上周,2012年将近结束的时候,自由软件基金会(FSF)发出呼吁,要求人们继续支持反Secure Boot垄断,希望签名者能达到5万人(目前是4万).我觉得, ...
- (windows)一台电脑上安装两个Mysql服务
原文:https://my.oschina.net/u/1472917/blog/410732 最近需要在一台电脑上安装两个Mysql服务,需求稍微有些奇怪,但确实很必要.本人原本为了本机测试Word ...
- 如何在老惠普电脑上安装windows xp系统
如何在老惠普电脑上安装windows xp系统 前提,老式的紧凑的惠普台式机,装了linux系统,想要装windows xp系统另作他用.但是使用U盘PE怎么也进不了? 解决办法: 1.拆下惠普主机上 ...
- .NET/C# 检测电脑上安装的 .NET Framework 的版本
原文:.NET/C# 检测电脑上安装的 .NET Framework 的版本 如果你希望知道某台计算机上安装了哪些版本的 .NET Framework,那么正好本文可以帮助你解决问题. 本文内容 如何 ...
- 在Ubuntu18.04.2LTS上安装电子书软件
在Ubuntu18.04.2LTS上安装电子书软件 一.前言 很多时候我们想在Ubuntu上阅读电子书,但是Ubuntu上的软件对于这种阅读的界面支持并不好,因此我们需要自己加入喜欢的阅读器 ...
- macbook上安装虚拟机软件如何操作?
很多用户都不太熟悉苹果系统,用惯了Windows之后再过渡到MacOS难免会有些不习惯.为了使我们又可以用回那些熟悉的Windows应用,比较常见的办法就是安装macbook虚拟机.下面小编就教大家一 ...
- 通过Mac远程调试iPhone/iPad上的网页(转)
我们知道在 Mac/PC 上的浏览器都有 Web 检查器这类的工具(如最著名的 Firebug)对前端开发进行调试,而在 iPhone/iPad 由于限于屏幕的大小和触摸屏的使用习惯,直接对网页调试非 ...
- 如何通过Chrome远程调试android设备上的Web网站
网上的帖子很多,但很多都是老版本的,试过了,根本不管用,花了一天时间,终于在本机试验通过了,特记录下来,以备用.有需要的朋友也可以参考.先上一张图,看看PC端chrome上调试的效果: 左边是手机的模 ...
- 关于如何在电脑上安装adb来操作手机(Android)的方法及步骤
1.需要真实的安卓手机: 2.安卓手机需要开启USB调试模式,允许电脑进行调试(各个手机的开启方式可能不同,不知道的自行百度): 3.电脑需要安装ADB驱动,这里提供一个下载地址:https://ad ...
随机推荐
- 5分钟安装docker教程
Centos安装docker需要操作系统是 CentOS 7 or 8,必须启用centos extras存储库.默认情况下,此存储库处于启用状态,但如果已禁用它,则需要重新启用它. 卸载旧版本 老版 ...
- Idea项目上传到gitlab(以新建项目为例)
1.首先,需要你自己登录GitLab,并新建一个项目的链接,如下图所示: 图一: 图二: 图三(idea上传时用到此链接): 2.在idea上新建一个demo项目,创建一个Git仓库: 3.点击创建后 ...
- archlinux Timeshift系统备份与还原
安装 timeshif yay -s timeshif 备份设置 选择快照类型 此处选择[RSYNC] 选择储存位置 每台设备安装分区不一样,大家安装实际情况选择,一般选择比较大的空间存储,并且最好是 ...
- .Net RabbitMQ实战指南——客户端开发
开发中关键的Class和Interface有Channel.Connection.ConnectionFactory.Consumer等,与RabbitMQ相关的开发工作,基本上是围绕Connecti ...
- GO文件读写03---使用缓冲读写实现视频文件的拷贝
package main import ( "bufio" "fmt" "io" "os" ) /* ·使用缓冲读写实现 ...
- python基础知识笔记(一)
一.变量 可以是字母.数字(不能作为开头).下划线. 自定义的常量名一般全部大写. na = "liu" na2 = na print("my na is ", ...
- NVIDIA CUDA-X AI
NVIDIA CUDA-X AI 面向数据科学和 AI 的 NVIDIA GPU 加速库 数据科学是推动 AI 发展的关键力量之一,而 AI 能够改变各行各业. 但是,驾驭 AI 的力量是一个复杂挑战 ...
- TOF与结构光技术分析
TOF与结构光技术分析 一.概述 结构光(Structuredlight),通常采用特定波长的不可见的激光作为光源,它发射出来的光带有编码信息,投射在物体上,通过一定算法来计算返回的编码图案的畸变来得 ...
- 深度学习框架:GPU
深度学习框架:GPU Deep Learning Frameworks 深度学习框架通过高级编程接口为设计.训练和验证深度神经网络提供了构建块.广泛使用的深度学习框架如MXNet.PyTorch.Te ...
- 全卷积网络Fully Convolutional Networks (FCN)实战
全卷积网络Fully Convolutional Networks (FCN)实战 使用图像中的每个像素进行类别预测的语义分割.全卷积网络(FCN)使用卷积神经网络将图像像素转换为像素类别.与之前介绍 ...