使用windbg分析dump文件的步骤。

  • 准备工作。

    • 打开dump文件。
    • 指定符号表文件的路径。
    • 指定可执行文件的路径。
    • 指定源码文件的路径。
  • 在windbg的命令行,输入并执行如下命令
    • .reload,重新加载前述数据文件。
    • !analyze -v,分析dump文件。
    • kbn,得到崩溃时的调用栈信息。
    • .ecxr,打开栈顶关联的源码。

其它

  • 如何安装windbg?

    当前windbg整合在了Windows SDK里,所以可以通过访问windows-sdk,通过下载、安装Windows SDK来安装windbg。

  • 如何生成dump文件?

    目前已知的方法,有如下几种:

    • 通过任务管理器,右键选中进程之后,选择创建转储文件。参考Windows下dump文件生成与分析
    • 配置注册表,参考Windows下dump文件生成与分析
    • 使用windbg等调试器,挂载到目标进程,然后使用.dump命令生成dump文件。
    • 使用管理员权限打开cmd.exe,执行windbg -I,可以将windbg注册为系统默认调试器,当系统中的进程出现崩溃现象时,将自动启动windbg并挂载至相应的进程中,此时可以执行.dump命令来生成dump文件。
  • 符号表文件非常关键,在构建软件时,无论debug/release,均指定编译器输出pdb文件。

    • 对于稳定复现的问题,这时使用Visual Studio IDE来调试,非常方便、高效。
    • 对于很难复现、或者没有找到复现条件的问题,事后分析dump文件,搭配pdb文件,同样有助于分析问题。
  • debug/release构建模式对分析dump文件的影响。

    • debug方式构建的程序,编译器做的优化相对较少,分析dump文件时可以方便的查看各个变量的取值。
    • release方式构建的程序,编译器做了大量的优化,分析dump文件时,可能无法看到具体变量的值,分析难度可能比较大。

参考资料

使用windbg分析dump文件的更多相关文章

  1. WinDbg分析DUMP文件

    1. 如何生成dump文件?     原理:通过SetUnhandledExceptionFilter设置捕获dump的入口,然后通过MiniDumpWriteDump生成dump文件:       ...

  2. 使用 WinDbg 分析dump文件

    步骤一: 生成dump文件. #include <Windows.h> #include <iostream> #include <DbgHelp.h> #incl ...

  3. WinDbg分析dump文件排查bug

    文章:WinDbg-如何抓取dump文件 命令: cd C:\Windows\System32\inetsrv appcmd list wp 可以查看各个站点的pid

  4. Windows下利用Windbg 分析dump

    概述: 注册生成dump文件的函数. 当程序收到没有捕获的异常时,调用上述函数,生成dump文件. 利用Windbg结合编译程序时生成的pdb和代码来分析dump文件,定位问题. 如下代码生成dump ...

  5. Windbg分析DMP文件

    1.提取Dump格式文件 有两种方式: 第一种,程序崩溃时,启动任务管理器,选择崩溃的*.exe进程,右键选择创建转储文件,通过 开始—运行—输入 %temp% --确定--在打开Temp窗口中即可找 ...

  6. WinDbg分析Dump常用方法和命令

    记录下自己使用WinDbg分析Dump时常用的一些方法和命令 !analyze -v //找出出错的堆 .exrc //找到程序崩溃的位置 !heap //打印出错函数的局部位置 !for_each_ ...

  7. 使用Windbg解析dump文件

    WinDbg OllyDbg SoftICE (已经停止更新) 虽说WinDbg在无源码调试方面确实比较困难,但在调试内核方面却真的有独到之处. https://www.pediy.com/kssd/ ...

  8. WinDbg 分析dump

    1.生成dump文件. 在代码捕获异常,并将异常写入dump文件. #include "stdafx.h" #include <Windows.h> #include ...

  9. 使用MAT(Memory Analyzer Tool)工具分析dump文件--转

    原文地址:http://gao-xianglong.iteye.com/blog/2173140?utm_source=tuicool&utm_medium=referral 前言 生产环境中 ...

  10. (转)解决WinDbg调试Dump文件不同环境mscordacwks.dll版本问题

    解决WinDbg调试Dump文件不同环境mscordacwks.dll版本问题   开发人员提交一个dump文件(Windows Server 2008 R2),当前调试环境Windows Serve ...

随机推荐

  1. 【开发工具】Linux 服务器 Shell 脚本简单应用(MySql备份等脚本)

    上一章介绍完基础[开发工具]Linux 服务器 Shell 脚本简单入门,这一章结合实际运用 对于 do while if else等流程控制基础不再说明,和编程语言大同小异,可以在实际的脚本使用中学 ...

  2. vscodeC++生成配置文件

    参考 https://www.cnblogs.com/harrypotterisdead/p/14207866.html 和 https://www.cnblogs.com/heyiping/p/14 ...

  3. FeignClient 报错: A bean with that name has already been defined and overriding is disabled.

    1. 错误信息 *************************** APPLICATION FAILED TO START *************************** Descript ...

  4. 1. Canal入门

    1. Canal简介 官方文档: https://github.com/alibaba/canal/wiki/简介 早期,阿里巴巴B2B公司因为存在杭州和美国双机房部署,存在跨机房同步的业务需求.早期 ...

  5. liunx 安装 python 虚拟环境, 各种方法,

    liunx 安装 python 虚拟环境,主要是要解决工作中需要用到python3.6,但是系统的2.7又不能动,安装系统组件时避免造成冲突.低版本的python安装django  uwsgi 等都用 ...

  6. IDEA关联Tomcat(详细教程+安装包)

    IDEA关联Tomcat 下载Tomcat安装包并解压到全英文目录 第一步:打开IDEA--Settings 第二步:搜索application--进入Application Services--点击 ...

  7. golang官方包管理vendor模式无法引用非go文件

    主页 微信公众号:密码应用技术实战 博客园首页:https://www.cnblogs.com/informatics/ 背景&问题 golang作为高级计算机语言之一,在云原生以及web网站 ...

  8. Zabbix技术分享——snmp异常排查指南

    大家好,我是乐乐.在IT运维中,难免会碰上设备snmp不通的情况,那么,当问题出现的时候,运维工程师该如何快速找到问题所在呢?下面让我们一起来看看吧!   1.IP配置检查 首先检查zabbix监控上 ...

  9. nrm 安装报错 解决方案

    想用 npm login 发现用的淘宝镜像,一看安装个nrm,结果运行还报错了.你看看. 改下,登录完再改回来. https://blog.csdn.net/mynewdays/article/det ...

  10. SourceTree 合并DEV分支到master

    SourceTree 合并DEV分支到master 1 切换到master分支 2 右键dev分支,选择 合并dev至当前分支 3 提交代码