• VC++程序崩溃时,使用Visual Studio静态分析dump文件


    Window环境下的C++程序如果发生异常崩溃,首先会和客户联系,让帮忙取特定目录下的dump文件和log文件来分析崩溃的原因。不过发生崩溃的话,从log一般分析不出特定原因,这时候dump文件就起作用了。可以通过Visual Studio和Windbg来静态分析dump文件,定位发生异常的位置和调查可能的原因。

    文章将介绍如何使用Visual Studio工具进行C++ 静态dump文件的分析。

    1.打开dump文件

    把dump文件拖进Visual Studio即可

    2.启动dump文件,进行调试

    点击【仅限本机进行调试】,启动dump(托管工程可以选择【仅限托管】或者【混合】)
    在这里插入图片描述

    3.定位异常位置
    3.1dump文件pdb文件在同一目录

    调试启动后,如果dump文件和pdb文件在同一个目录的,可以直接定位到异常代码行。
    在这里插入图片描述

    3.2dump文件pdb文件不在同一目录

    调试启动后,如果dump文件和pdb文件不在同一个目录,会显示找不到pdb文件,则需要通过【新建路径】设置pdb文件的路径,然后点击【加载】,就可以定位到异常代码行了。或者把pdb重新放到和程序模块一个目录下,再从第一步开始。
    在这里插入图片描述

    3.3.查看调用堆栈

    实际调试中,最终崩溃的地方往往发生在系统dll中。因为对于系统dll,我们没有对应的pdb,并且也不大可能是系统dll造成的异常,所以需要根据调用堆栈去查看是我们自己的哪个模块调用了系统函数。在没有设置自己程序的pdb时,如图是看不到详细调用堆栈的。
    在这里插入图片描述
    根据实际情况,把有可能发生问题的模块的pdb文件放入和dump同一目录,重新进行调试。
    如图,pdb文件加载后,就可以看到发生崩溃时自己程序的调用堆栈了,并且具体到了函数和行数。双击调用堆栈那里的函数(蓝色遮盖区域),可以打开cpp并查看发生问题地方的上下文,并检查内存的变量值。(如果没有自动打开代码,只需按照提示设置正确的代码路径即可)
    在这里插入图片描述


    C++程序崩溃时,使用Windbg静态分析dump文件

  • 相关阅读:
    基于java足球赛会管理系统
    mq的一些集群配置
    猿创征文| 开发微信小程序入门到入土①(复习笔记)
    Win11校园网无法连接怎么办?Win11连接不到校园网的解决方法
    OpenFeign(案例代码)
    CANoe-如何实现27服务解锁
    Spring Cloud Gateway中session共享
    【面试复习】Python基础复习
    iDEA - Gradle构建多module项目踩坑指南
    【数字IC设计】DC自动添加门控时钟
  • 原文地址:https://blog.csdn.net/xiaofeizai1116/article/details/134032491