• Dump 文件生成与分析


         近期两天因为项目的须要,研究了一下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,假设有不明确的或者有更高明的方式,希望各位网友赐教!

  • 相关阅读:
    java中商业数据计算时用到的类BigDecimal和DecimalFormat
    Git和SVN之间的区别
    ubuntu 交叉编译arm linux 内核小例子
    交叉编译工具链介绍《Building Embedded Linux Systems》
    交叉编译工具链命名详解
    oracle数据库分页总结
    oracle随机数(转)
    oracle函数nvl, nvl2, nullif
    反转数字, 即输入123, 返回321
    java试题
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/3851219.html
Copyright © 2020-2023  润新知