近期两天因为项目的须要,研究了一下Dump文件相关的知识,今天做一个小节(因为研究不久而且第一次写blog,希望网友们看到不要见笑)。

Dump文件是进程的内存镜像。能够把程序的运行状态通过调试器保存到dump文件里。

   Dump文件是用来给驱动程序编写人员调试驱动程序用的,这样的文件必须用专用工具软件打开,比方使用WinDbg打开。

当我们的程序公布出去之后,在客户机上是无法跟踪自己代码的bug的,所以Dump(扩展名是 .dmp)文件对于我们来说特别实用。我们能够通过.dmp文件把出现bug 的情况再现,然后依据再现的状况(包含堆栈调用等情况),能够找到出现bug的行号,甚至是出现bug的点。

通过研究,我总结了两种方式,例如以下:

(1)安装WinDBG,详细方式能够參照:http://blog.csdn.net/oeichenwei/archive/2009/05/19/4201590.aspx

(2)通过Windows系统方式(我的是WinXP),參照:http://blog.csdn.net/wangyangtao/archive/2010/03/08/5355841.aspx

当然我的方式与以上的两网址里面的不一样(学习以上的基础上做的),我详细做法是:

(1)安装WinDBG

(a)下载安装WinDBG(安装方式不赘述)

(b)打开WinDBG, File/Attach to a process/  然后再列表中显示须要监视的进程(.exe)

(c)当程序崩溃之后运行 DUMP 命令产生 dmp文件,命令有:.dump /m C:/dumps/myapp.dmp  、.dump /ma C:/dumps/myapp.dmp、 .dump /mFhutwd C:/dumps/myapp.dmp

运行以上就产生了dmp文件

(2)通过Windows系统方式

首先用Dr Watson 在执行中输入drwtsn32.exe –i 安装Dr Watson作为默认应用程序调试程序。

再在在执行中输入drwtsn32.exe 设置: 如图:

日志文件路径为 所要放置dump文件的文件夹,故障转储 就是该文件夹下的dmup文件位置

选择指令和错误数量能够写多点

类型选完整选项选1 2 3 6项

当程序崩溃时,Dr Watson会在设定文件夹下生成dump文件

通过以上两种方式就生成了DUMP文件,以下就剩下分析了。我们通过两种方式来进行分析
(1)WinDBG方式分析

(a)打开WinDBG,File/Sybolm File Path/ 指定公布EXE 的时候.PDB生成的路径

(b)file/Open Crash Dump/  打开生成的DMP文件

(c)使用WinDBG的命令来分析Bug, 如命令: !analyze -v

(d)也能够使用快捷栏的功能查看一些变量的基本信息来帮助查看Bug

(2)通过VS2005分析,方法參照网址:http://www.cppblog.com/woaidongmao/archive/2009/10/21/99135.html

以上就是我近期两天研究的一个小节,都是别人的一些成果。 首次写blog,假设有不明确的或者有更高明的方式,希望各位网友赐教!

Dump 文件生成与分析的更多相关文章

  1. Windows下dump文件生成与分析

    一.    生成Dump文件方式 1.1任务管理器 在程序崩溃后,先不关闭程序,在任务管理器中找到该程序对应的进程.右键—>创建转储文件. 此时会在默认的目录下创建出一个dump文件. 可以看出 ...

  2. dump文件生成与调试(VS2008)

    总结一下dump文件生成和调试的方法: 1:用SetUnhandledExceptionFilter捕获未处理的异常,包含头文件<windows.h>.函数原型为: LPTOP_LEVEL ...

  3. linux 平台core dump文件生成

    1. 在终端中输入ulimit -c 如果结果为0,说明当程序崩溃时,系统并不能生成core dump. root@hbg:/# ulimit -c0root@hbg:/# 2.使用ulimit -c ...

  4. Dump文件的生成和使用

    版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/lk142500/article/detai ...

  5. 调试SQLSERVER (一)生成dump文件的方法

    调试SQLSERVER (一)生成dump文件的方法 调试SQLSERVER (二)使用Windbg调试SQLSERVER的环境设置调试SQLSERVER (三)使用Windbg调试SQLSERVER ...

  6. dotnet core调试docker下生成的dump文件

    最近公司预生产环境.net core应用的docker容器经常出现内存暴涨现象,有时会突然吃掉几个G,触发监控预警,造成容器重启. 分析了各种可能原因,修复了可能发生的内存泄露,经测试本地正常,但是发 ...

  7. Windbg内核调试之四: Dump文件分析

    Dump 文件分析很大程度上就是分析蓝屏产生的原因.这种系统级的错误算是Windows提示错误中比较严重的一种(更严重的还有启动黑屏等硬件或软件兼容性错误等等).说它是比较严重,是因为毕竟Window ...

  8. 记录linux 生成crash dump文件步骤

    执行文件编译时加入-g 命令 例如 g++ -g test.cpp 查看当前系统限制情况 ulimit -a 设置crash dump 文件大小 ulimit -c unlimited unlimit ...

  9. 干货分享丨jvm系列:dump文件深度分析

    摘要:java内存dump是jvm运行时内存的一份快照,利用它可以分析是否存在内存浪费,可以检查内存管理是否合理,当发生OOM的时候,可以找出问题的原因.那么dump文件的内容是什么样的呢? JVM ...

随机推荐

  1. vim技巧和坑

    VIM的匹配替换功能很快很强大,但是要显示匹配个数就很苦情,要绕个弯子实现:%s/xxx//gn关键是最后的n,代表只报告匹配的个数,而不进行实际的替换. vim v5 强大.. 另外,如果你习惯了w ...

  2. 关于unitils联合dbunit的测试

    unitils据说测试的能力很强大,可测试dao,service,web层,其实对数据库的测试我更关心,看到有人展示了测试的方法,数据直接写在xls表中,很直观,然后就依照他们的方法进行试验,花费的时 ...

  3. 安装完 MySQL 后必须调整的 10 项配置

    原文出处: mysqlperformanceblog   译文出处:开源中国   欢迎分享原创到伯乐头条 当我们被人雇来监测MySQL性能时,人们希望我们能够检视一下MySQL配置然后给出一些提高建议 ...

  4. 关于Function()函数对象的那些小九九

    概念:首先,函数是一种特殊类型的数据,函数也是数据类型的一种,实际上函数也是一种对象,函数对象的内建构造器是Function(); 函数的几种创建方式: 函数声明法: function sum(a,b ...

  5. 初涉JavaScript模式 (1) : 简介

    什么是模式? 广义上的模式是指 :在物体或事件上,产生的一种规律变化与自我重复的样式与过程.在模式之中,某些固定的元素不断以可预测的方式周期性重现.最基本而常见的模式,称为密铺,具备重复性以及周期性两 ...

  6. Android输入法开发

    1. 概念 * IMF: 输入法框架(Input Method Framework) * IM: 输入法(Input Method) * IMS: 输入法服务(Input Method Service ...

  7. delphi定义自己的消息

    定义一个消息需要两个步骤: 1.声明一个消息标识符 2.声明一个消息记录类型 一个消息标识符是一个整数大小的常数.Windows自用低于1024的消息,所以当你声明你自己的消息,你应该开始高于这一数字 ...

  8. CSS远程加载字体

    CSS 远程加载字体的方法,做网站CSS的都知道,用户浏览网站时,网页上的字体是加载本地的.换言之,如果网站使用了用户电脑所没有安装的字体,那显示字体就会被默认字体所代替了,自然效果就大受影响了. 上 ...

  9. SQL Server 连接字符串和身份验证

    SQL Server .NET Data Provider 连接字符串包含一个由一些属性名/值对组成的集合.每一个属性/值对都由分号隔开.         PropertyName1=Value1;P ...

  10. 如何“任性”使用Android的drawText()

    Android的canvas上可以画很多基本形状,诸如:圆,矩形,线条等等,其中当属文字即drawText()较难理解和使用(额,这只是就个人感受),下面将慢慢介绍下如何简单使用drawText(). ...