首页 > 其他分享 >如何通过dump文件定位崩溃,解决问题

如何通过dump文件定位崩溃,解决问题

时间:2023-08-11 14:36:19浏览次数:29  
标签:文件 exe dump dmp 崩溃 解决问题 pdb 调试

1、dump文件是附加堆栈信息的存储文件的简称,文件扩展名“.dmp”,通过dump文件我们可以得到程序运行某一时刻的堆栈数据。

2、当程序意外崩溃后,通常程序会立即中断运行,拿到这一时刻的dump文件就可以通过此时的堆栈进行分析,找到崩溃的代码并分析原因。

3、当程序遇到未处理异常(主要指非指针造成)导致程序崩溃,在程序开始处增加SetUnhandledExceptionFilter()函数,并在函数中利用适当的方法生成Dump文件,即可实现需要的功能。

4、调试器是如何来判别EXE、DLL等是否和一个pdb文件匹配呢? 每次我们链接EXE或者DLL或者SYS的时候,链接器都将产生一个唯一的GUID,然后将其写入到PDB和可执行文件。调试器加载的时候将检查两者的GUID,如果一致就表示他们匹配。

5、注:如果我们需要调试,我们需要查dmp文件,那么请妥善保管好自己的代码和pdb。每次重新编译,即使所有代码均没有变化,他们的GUID也不同。

6、用VS调试Release的程序,发现无法调试。其实,并不是Release的程序不能调试,而是没有让Release的程序生成pdb文件,VS无法加载pdb文件而无法调试程序。链接器-调试-生成调试信息设置一下就可以调试了。

7、本地dump调试:直接用VS打开XX.dmp文件,测试时dmp文件是本地产生的,因此VS会依据dmp文件自行找到exe,pdb和源代码的路径。因此直接点击调试,程序会出错代码行中断。

8、无源代码dump调试:若dmp文件是exe在另一台机器上产生的,则我们最好把exe,pdb,dmp放到同一文件夹下,必须保证pdb与出问题的exe是同一时间生成的,用VS打开dmp文件后还需要设置符号表文件路径和源代码路径。工具-选项-调试-符号。

9、调试dump文件时需要保证dump文件和exe、dll版本一致。只要是dump文件不是这个exe产生的,不管源代码是不是一样,结果都会提示找不到exe。

10、WinDbg调试:基本思路与VS一致,winDbg会提供更为全面的调试信息。

  (1)设置pdb路径:File ->Symbol File Path

  (2)设置exe路径:File -> Image File Path

  (3)设置源代码路径:File -> Source File Path(指sln所在目录)

  (4)打开dmp文件:File ->Open Crash Dump

  (5)执行命令 !analyze –v

标签:文件,exe,dump,dmp,崩溃,解决问题,pdb,调试
From: https://www.cnblogs.com/ybqjymy/p/17622873.html

相关文章

  • 国标GB28181视频云服务平台LntonGBS(源码)国标平台对接宇视SDK,多次点击录像回放出现崩溃
    LntonGBS是一款基于国标GB28181协议的视频云服务平台。通过该平台,可以实现设备接入并支持视频的实时监控直播、录像、语音对讲、云存储、告警、级联等功能。此外,LntonGBS还支持将接入的视频流进行全终端、全平台的分发,包括支持RTSP、RTMP、FLV、HLS、WebRTC等格式的视频流分发。另......
  • 记录--浏览器渲染15M文本导致崩溃怎么办
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助最近,我刚刚完成了一个阅读器的txt文件阅读功能,但在处理大文件时,遇到了文本内容过多导致浏览器崩溃的问题。一般情况下,没有任何样式渲染时不会出现什么问题,15MB的文件大约会有3秒的空白时间。<divid="content"></......
  • .NET下绕过任意反Dump的方法
    title:.NET下绕过任意反Dump的方法date:2022-03-16updated:2023-04-12lang:zh-CNcategories:-[.NET逆向]tags:-.NET-逆向工程-反转储toc:true文章首发于https://wwh1004.com/net-trick-to-bypass-any-anti-dumping/本文介绍了一种通过CLR内部数据绕过任意......
  • 详解ConfuserEx的Anti Tamper与Anti Dump
    title:详解ConfuserEx的AntiTamper与AntiDumpdate:2018-08-14updated:2023-04-11lang:zh-CNcategories:-[.NET逆向]tags:-.NET-逆向工程-脱壳-ConfuserEx-反篡改-反转储toc:true文章首发于https://wwh1004.github.io/inside-confuserex-antitamper-......
  • 记rabbitmq崩溃随笔
    之前一直以为MQ是个很简单的东西,部署好后,知道怎么样用就好了。不就是生产者-消费者之间的消息传递嘛,还有几种消息模式,延时队列插件啥的,都会用就好。直到在这家公司,自建的RabbitMQ稳定性一直很差,消费者老是起不来,偶尔又遇到幽灵队列的情况。终于,上周这个MQ终于顶不住了,又一开始排......
  • linux配置 崩溃生成core 转储
    ulimit-c查看core文件大小限制0表达不生成ulimit-cunlimited设置为不限制vim/proc/sys/kernel/core_pattern编辑生成规则|/usr/share/apport/apport%p%s%c%d%P%E%p:进程ID(PID)%s:进程名称(通常是可执行文件的名称)%c:命令行参数%d:应用程序的工作目录%P:包含应......
  • Wordpress:安装谷歌GTM代码出现页面崩溃乱码的原因
    独立站做好之后,需要安装谷歌GTM代码利于数据追踪。但是按照要求装上后,出现了页面乱码。查看代码,发现代码写在body标签之内了, 进入网站后台,使用主题编辑器查看发现低47行尾标有两个>;将GTM代码移出放在>>之后,保存文件刷新即可。 修改后:   ......
  • 国标GB28181视频平台LntonGBS(源码版)国标视频平台内存错误导致崩溃的问题解决方案
    LntonGBS国标视频云服务通过支持国标GB28181协议,实现了设备接入、实时监控直播、录像、语音对讲、云存储、告警、级联等功能。同时,它还支持将接入的视频流以多种格式(包括RTSP、RTMP、FLV、HLS、WebRTC)进行全终端、全平台分发,实现了无插件播放在Web浏览器、手机浏览器、微信端、PC客......
  • Linux 网络抓包工具 Tcpdump
    Linuxtcpdump命令示例tcpdump是一个功能最强大且广泛使用的命令行数据包嗅探或数据包分析工具,用于捕获或过滤在特定接口上接收或传输的TCP/IP数据包。Tcpdump在许多Linux/Unix操作系统中都是现成的。此外,它提供了一个宝贵的选项,可以将捕获的数据包保存到文件中以供将来分析......
  • ubuntu系统升级软件sudo apt upgrade后GPU崩溃报错,显示驱动版本不匹配——ubuntu系统
     ubuntu系统升级软件(sudoaptupgrade)后,GPU崩溃报错,查看系统日志: Aug206:25:02lcwtrsyslogd:[originsoftware="rsyslogd"swVersion="8.32.0"x-pid="2059"x-info="http://www.rsyslog.com"]rsyslogdwasHUPedAug207:17:01lcwtCRON......