[VS工程技巧]远程调试工具及dump文件来检查程序崩溃及异常等问题
做什么
之前有一次梦中所得,既然可以让vs附加到进程去调试活动的dll,那要是可以让我本地的电脑去调试别人客户端或者测试环境的DLL就好了,这样就可以不通过dbgview去一个个输出看,而是可以直接调试到参数检查,并且根据报错检查问题所在了。
也正是这样的机缘巧合之下了解到远程调试工具,不得不感叹微软真的是一家伟大的公司,连这样的工具都有。
怎么做
实际上的工程应用很简单,步骤如下:
1.首先确定Visual Studio版本,比如你是2019版的VS,你就使用2019版的调试工具,总之调试方VS和被调试方的调试工具要保持版本一直。
这里就拿VS2019举例。
首先找到VS2019的调试工具,个人路径不同,如果你是默认设置可以参考一下我的路径
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\Remote Debugger\x86
注意这个工具是分版本的,一般无脑用x86就行

注:这个文件夹是可以直接拎出来单独使用的,不需要别的依赖。
然后这个文件夹就可以随时拿出来,你可以放到自己的U盘或者移动硬盘什么的位置,方便随时取用的就行。
然后就可以把这个工具放到一台客机上,双击msvsmon.exe打开,打开后界面如此:
2.客机设置:

(注:在私有网络环境下才开启无身份验证,如果是公网请务必谨慎谨慎再谨慎,否则造成损失概不负责)
这里点击工具->选项->无身份验证->允许任何用户调试->最长空闲时间设为114514

提示这个之后就说明已经开启了连接。
3.主机设置
在主机上打开想要调试的DLL的工程文件,点击调试->附加到进程
选中连接类型->远程(无身份验证)->连接目标->查找


如果能连接的上,这里应该已经有指定的机器了
然后就可以让VS在远程网络环境下附加在指定 exe上进行调试了。
注
请务必保证两端DLL的代码保持一直,同时为了保证断点能够正常被命中,需要将主机中的pdb文件移植到客机的同位置上

比如这两个文件,如果你希望远程调试能够正常运行,则必须要把这个.pdb文件放在同目录下,因为实际上你本地进行这个DLL的调试也是通过这个.pdb文件进行的。也就是说,二者的pdb文件也最好需要保持一直,否则很难保证其能正常运作。
dump文件
dump文件的话,我之前有分享过一个qt的dump库,当然了google也有类似的库
Github:https://github.com/LeventureQys/LgQDumper
这个库的话,就是可以在程序异常退出的时候留出一块内存出来返回一个类似错误日志一样的dmp文件,vs可以直接分析,给它对应的pdb文件,就可以找到指定代码的位置并像正常的VS调试时报错一样指出是哪里除了问题。
这个也需要配合.pdb文件一起使用,这个东西的使用局限性比较大,关键时刻可能会给你提供思路,但不能过度依赖它,因为有时候它可以指出报错,但如果是空悬指针或者内存溢出,堆栈损坏等情况,可能会提供给你一个提示,但是并不会告诉你具体错在哪。
除此之外,它也无法告诉你运行的应用程序依赖的库的错误,比如A.exe依赖了B.dll,如果B.dll发生异常崩溃,那么A.exe是捕获不到B.dll的异常崩溃的,但是会返回给你一段代码告诉你比如0xC0000005这样的错误,不过不会告诉你具体在哪。
总而言之,言而总之,能用就行,不用奢望太多
[VS工程技巧]远程调试工具及dump文件来检查程序崩溃及异常等问题的更多相关文章
- WinDBG 技巧:如何生成Dump 文件(.dump 命令)
程序崩溃(crash)的时候, 为了以后能够调试分析问题, 可以使用WinDBG要把当时程序内存空间数据都保存下来,生成的文件称为dump 文件. 步骤: 1) 打开WinDBG并将之Attach 到 ...
- dump文件定位程序崩溃代码行
1.dump文件 2.程序对应的pdb 步骤一:安装windbg 步骤二:通过windbg打开crash dump文件 步骤三:设置pdb文件路径,即符号表路径 步骤四:运行命令!analyze -v ...
- 程序自动生成Dump文件
前言:通过drwtsn32.NTSD.CDB等调试工具生成Dump文件, drwtsn32存在的缺点虽然NTSD.CDB可以完全解决,但并不是所有的操作系统中都安装了NTSD.CDB等调试工具.了解了 ...
- 程序自动生成Dump文件()
前言:通过drwtsn32.NTSD.CDB等调试工具生成Dump文件, drwtsn32存在的缺点虽然NTSD.CDB可以完全解决,但并不是所有的操作系统中都安装了NTSD.CDB等调试工具.了解了 ...
- WinDbg抓取程序报错dump文件的方法
程序崩溃的两种主要现象: a. 程序在运行中的时候,突然弹出错误窗口,然后点错误窗口的确定时,程序直接关闭 例如: “应用程序错误” “C++错误之类的窗口” “程序无响应” “假死”等 此种崩溃特点 ...
- C# 异常内存信息导出Dump文件
背景:很多情况下程序崩溃我们只能看到程序抛出来的异常信息,但是有时候异常信息不清不楚我们处理异常还是一头雾水,这种情况下我们就很希望能有种办法获取程序运行时的内存进行调试,查看其中的变量.参数.方法执 ...
- 在k8s中收集jvm异常dump文件到OSS
现状 加参数 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=logs/test.dump 可以实现在jvm发生内存错误后 会生成dump文件 方便开 ...
- Dump文件的生成和使用
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/lk142500/article/detai ...
- 如何使用dump文件进行调试
转载[文尾出处链接] 1 简介第一次遇到程序崩溃的问题,之前为单位开发了一个插件程序,在本机运行没有出现问题,但把生成的可执行文件拷贝到服务器上一运行程序,刚进入插件代码,插件服务就崩溃了,当时被这个 ...
- dump解析入门-用VS解析dump文件进行排障
突然有一天部署在服务器的一个应用挂掉了,没办法只能进入服务器打开 [事件查看器]查看下,好不容易找到了打开后一脸懵逼 事件查看器查到的内容根本对我们排障没有任何作用. 在这个时候如果有对应的dump文 ...
随机推荐
- 基于DotNetty实现自动发布 - 实现一键打包发布
前言 上一篇,我只实现了一键检测代码变化,本篇才是真正的实现了一键打包发布 效果图 客户端打包待发布文件 /// <summary> /// 把多个文件添加到压缩包 (保留文件夹层级关系) ...
- HDFS存储原理
冗余数据保存问题: 一个数据块默认被保存三次 好处:1.加快数据传输错误(假如要同时访问数据块1 因为他冗余存储就会有3份 所以会加快数据传输速度) 2.很容易检查数据错误 3.保证数据可靠性 数据的 ...
- 文心一言 VS 讯飞星火 VS chatgpt (157)-- 算法导论12.3 4题
四.用go语言,删除操作可交换吗?可交换的含义是,先删除 x 再删除 y 留下的结果树与先除 y 再删除 x 留下的结果树完全一样.如果是,说明为什么? 否则,给出一个反例. 文心一言: 在Go语言中 ...
- 【纯手工打造】时间戳转换工具(python)
1.背景 最近发现一个事情,如果日志中的时间戳,需要我们转换成时间,增加可读性.或者将时间转换成时间戳,来配置时间.相信大多人和我一样,都是打开网页,搜索在线时间戳转换工具,然后复制粘贴进去.个人认为 ...
- 隐匿自己的c2服务器(一)
隐匿自己的c2服务器(一) 目录 隐匿自己的c2服务器(一) 服务器设置 安装java环境 启动设置 开启禁ping 微信机器人推送上线信息 ️端口特征修改 证书特征修改 流量特征修改 利用cdn加 ...
- 聊聊Java的异常机制问题
摘要:java异常指在程序运行时可能出现的一些错误,如:文件找不到.网络连接失败.非法参数等.异常是一个事件,它发生在程序运行期间,中断了正在执行的程序的正常指令流. 本文分享自华为云社区<Ja ...
- 基于OpenHarmony L2设备,如何用IoTDeviceSDKTiny对接华为云
摘要:本文主要讲解如何基于L2设备对接华为云IoTDA,以DAYU200开发板,采用IoTDeviceSDKTiny对接华为云IoTDA,当然这里也可以采用其他OpenHarmony的富设备. 本文分 ...
- 带你彻底搞懂高性能网络模式Reactor 和 Proactor
摘要:无论是 Reactor,还是 Proactor,都是一种基于「事件分发」的网络编程模式,区别在于 Reactor 模式是基于「待完成」的 I/O 事件,而 Proactor 模式则是基于 ...
- 带你读AI论文丨用于细粒度分类的Transformer结构—TransFG
摘要:本文解读了<TransFG: A Transformer Architecture for Fine-grained Recognition>,该论文针对细粒度分类任务,提出了对应的 ...
- Solon 开发进阶,五、全局异常订阅
Solon 开发进阶 一.插件扩展机制 二.体外扩展机制 三.常用配置说明 四.启动参数说明 五.全局异常订阅 所谓"全局异常",是指通过事件总线发布的异常.目前框架会把未吃掉的异 ...