使用windbg分析dump文件
使用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文件的更多相关文章
- WinDbg分析DUMP文件
1. 如何生成dump文件? 原理:通过SetUnhandledExceptionFilter设置捕获dump的入口,然后通过MiniDumpWriteDump生成dump文件: ...
- 使用 WinDbg 分析dump文件
步骤一: 生成dump文件. #include <Windows.h> #include <iostream> #include <DbgHelp.h> #incl ...
- WinDbg分析dump文件排查bug
文章:WinDbg-如何抓取dump文件 命令: cd C:\Windows\System32\inetsrv appcmd list wp 可以查看各个站点的pid
- Windows下利用Windbg 分析dump
概述: 注册生成dump文件的函数. 当程序收到没有捕获的异常时,调用上述函数,生成dump文件. 利用Windbg结合编译程序时生成的pdb和代码来分析dump文件,定位问题. 如下代码生成dump ...
- Windbg分析DMP文件
1.提取Dump格式文件 有两种方式: 第一种,程序崩溃时,启动任务管理器,选择崩溃的*.exe进程,右键选择创建转储文件,通过 开始—运行—输入 %temp% --确定--在打开Temp窗口中即可找 ...
- WinDbg分析Dump常用方法和命令
记录下自己使用WinDbg分析Dump时常用的一些方法和命令 !analyze -v //找出出错的堆 .exrc //找到程序崩溃的位置 !heap //打印出错函数的局部位置 !for_each_ ...
- 使用Windbg解析dump文件
WinDbg OllyDbg SoftICE (已经停止更新) 虽说WinDbg在无源码调试方面确实比较困难,但在调试内核方面却真的有独到之处. https://www.pediy.com/kssd/ ...
- WinDbg 分析dump
1.生成dump文件. 在代码捕获异常,并将异常写入dump文件. #include "stdafx.h" #include <Windows.h> #include ...
- 使用MAT(Memory Analyzer Tool)工具分析dump文件--转
原文地址:http://gao-xianglong.iteye.com/blog/2173140?utm_source=tuicool&utm_medium=referral 前言 生产环境中 ...
- (转)解决WinDbg调试Dump文件不同环境mscordacwks.dll版本问题
解决WinDbg调试Dump文件不同环境mscordacwks.dll版本问题 开发人员提交一个dump文件(Windows Server 2008 R2),当前调试环境Windows Serve ...
随机推荐
- java日期中YYYY与yyyy的区别
date==>string string ==>date 总结: 个人觉得:当天所在的周属于的年份,一周从周日开始,周六结束,只要本周跨年,那么这周就算入下一年.这个结论在正向转换的时候是 ...
- JAVA 考试管理系统 大作业(一):需求分析
好家伙,有需要的拿去借鉴吧(虽然我也百度了很多) 题目如下: 题目四:考试管理系统 (选做要求:使用图形用户界面) 分3种用户角色:教务员(具有管理权限).教师.学生 l 教务员:可以进行用户管理( ...
- 【Azure 应用服务】使用App Service for Linux/Container时,如果代码或Container启动耗时大于了230秒,默认会启动失败。
问题描述 使用App Service for Linux/Container时,从Docker的日志中,我们可以看见有 warmup 行为,而此行为默认时间为230秒,如果超出了这个时间,就会导致Co ...
- Java 四种不同的权限修饰
private 私有属性 只在同一个包下 同一个类中可以调用 同一个包下,不同的类中,可以调用 缺省,保护(protected),公共(public)可以调用, 不同的包下的类中,继承关系,可以调用 ...
- python 生成虚拟环境requirement.txt
# 在项目根目录中,打开终端执行以下命令 # 生成 requirements.txt 文件 pip3 freeze > requirements.txt # 安装依赖文件 pip3 instal ...
- 音标 重音 u 用 中文 吁 去记忆 骑马让马停下来的 吁 - 英语
音标 重音 u 用 中文 吁 去记忆 骑马让马停下来的 吁
- pod探针的三种类型及三种检测方式
Pod探针是Kubernetes中的一种机制,用于检测Pod中的容器是否正常运行.它主要有三种类型:存活探针(LivenessProbe).就绪探针(ReadinessProbe)和启动探针(Star ...
- 基于英特尔® Gaudi® 2 AI 加速器的文本生成流水线
随着生成式人工智能 (Generative AI,GenAI) 革命的全面推进,使用 Llama 2 等开源 transformer 模型生成文本已成为新风尚.人工智能爱好者及开发人员正在寻求利用此类 ...
- 封装TornadoFx常用控件库
github:https://github.com/Stars-One/common-controls 为TornadoFx的封装的常用控件与工具,基于Jfoenix,借鉴Kfoenix 前言 这个开 ...
- docker安装kafka和zookeeper
参考,欢迎点击原文:https://www.cnblogs.com/360minitao/p/14665845.html(主要) https://blog.csdn.net/qq_22041375/a ...