美文网首页
windbg分析minidump

windbg分析minidump

作者: 纵横而乐 | 来源:发表于2015-06-16 20:33 被阅读724次

minidump为程序意外中止的瞬间系统及程序运行状况的一个快照,包含的信息如下:

 导致中止的原因描述

 加载的驱动程序的列表

 已停止的处理器的上下文 (PRCB)

 已停止的进程的信息和内核上下文 (EPROCESS)

 已停止的进程的信息和内核上下文 (ETHREAD)

 已停止的线程的内核模式调用堆栈

由于minidump内容有限,所以有时候可能并不能分析出程序真正中止的详细原因

本着物尽其用的原则,我们来详细描述下拿到minidump文件之后,怎样一步步分析出导致程序崩溃的真正原因,本文默认大家都有程序的完整符号文件pdb

1 拿到minidump之后,把pdb文件路径配置进windbg中,分析的时候好解析出来dump里面的各个符号,同时如果想看到源代码,则需要同时把源代码路径配置进工作空间中

2 !analyze -v  查看崩溃详细信息

3 .ecxr定位到堆栈上下文,最好使用 ctrl+alt + v启动Verbose 详细模式,启动之后各命令输出的内容会相应地附加上更多的信息,比如dv命令会打印出各局部变量在栈上的地址

4 如果pdb路径设置正确,那么此时堆栈中的内容已经替换为相应的函数调用信息了,如果没有的话就用 lm命令查看下各dll对应的pdb是否正确加载

5 用.frame n命令定位到特定层的,同时使用 ? @$frame命令可以查看到当前的栈帧号,$frame为windbg定义的伪寄存器,其他类似的伪寄存器有$scopeip 当前栈帧中当前执行的指令

6 使用dps @address 可以查看栈上一部分内容,默认为32*4字节,可以在后面添加参数 比如 L40则显示的长度为64*4字节

7 uf 函数名 可以查看各函数反汇编后的汇编代码,再结合栈上的数据可以查到相关的变量信息并根据这些信息推断崩溃原因。

相关文章

  • windbg分析minidump

    minidump为程序意外中止的瞬间系统及程序运行状况的一个快照,包含的信息如下: 导致中止的原因描述 加载的驱动...

  • 【Windows】使用WinDbg分析minidump崩溃文件

    两种类型的符号文件 符号文件有两种类型: full symbol:包含public symbols和private...

  • 分析windbg内核调试通信数据

    layout: posttitle: 分析windbg内核调试通信数据categories: Debugdescr...

  • 简单分析minidump(2)

    有了前几节的准备工作,我们的程序已经可以自动捕获异常了,那么我们开始通过windbg来分析dump解决实际问题。先...

  • 简单分析minidump(1)

    有了前几节的准备工作,我们的程序已经可以自动捕获异常了,那么我们开始通过windbg来分析dump解决实际问题。先...

  • Windows 蓝屏分析_WinDbg

    当电脑出现蓝屏时,Windows系统会自动生成一个蓝屏错误DMP文件。通过Windbg工具可以读取DMP文件内容并...

  • windbg分析内存泄漏

    介绍 本文主要介绍一种通过windbg分析内存泄漏的方法。 现象 后台检测程序在某天上报了告警,大概就是某程序的提...

  • 空指针异常排查

    1 得到崩溃代码行 用windbg分析后,得出如下崩溃代码行,关于如何分析Crash见:Dump调试 2 显示最近...

  • 分析蓝屏日志

    收集 dump 信息: Windows Store 中 下载 WinDbg Preview: WinDbg 打开蓝...

  • Windows 蓝屏分析_bluescreenview

    除了windbg分析蓝屏文件外,还可以用一些其他工具分析,其中bluescreenview的安装使用都比较简单,适...

网友评论

      本文标题:windbg分析minidump

      本文链接:https://www.haomeiwen.com/subject/akwjqttx.html