zoukankan      html  css  js  c++  java
  • Windbg常用命令系列---.dump(创建dump文件)

    .dump (Create Dump File)

    .dump 命令创建一个用户模式或内核模式崩溃转储文件。

    语法

    .dump Options FileName 
    .dump /? 

    参数

    Options
    指定下面这些选项的一个或多个。
    /o
    覆盖具有相同名字的dump文件。如果没有使用该选项又存在一个相同名字的文件,则dump文件不会被写入。
    /f
    (内核模式:) 创建一个完整内存dump。

     (用户模式:) 创建一个完整用户模式dump。不管怎么称呼,最大的minidump文件实际比完整用户模式dump文件包含更多信息。例如, .dump /mf.dump /ma 会创建比.dump /f创建更大更完整的文件。在用户模式下,.dump /m[MiniOptions] 总是比.dump /f更可取。

    /m[MiniOptions]
    创建一个小内存dump(内核模式)或者 minidump (用户模式)。如果没有指定 /f /m/m 是默认选项。

    用户模式下,/m 后面可以跟附加的MiniOptions 用来指定dump文件中包含的数据。如果没有使用MiniOptions ,dump文件包含模块、线程和调用堆栈信息,但是没有其他附加信息。可以使用下面的任意MiniOptions 来改变dump文件的内容,它们区分大小写。

    MiniOption作用
    a 创建一个包含所有附加选项的minidump。/ma选项相当于/mfFhut —它会在minidump中添加完整的内存数据、句柄数据、已卸载模块信息、基本内存信息和线程时间信息。
    f 在minidump中包含完整内存数据。目标程序拥有的所有 可访问的已交付的页面(committed pages)都会包含进去。
    F 在minidump中添加所有基本内存信息。这会将一个流加入到包含完整基本内存信息的minidump中,而不单是可使用的内存。这样可以使得调试器能够重建minidump生成时进程的完整虚拟内存布局。
    h 在minidump中包含和目标进程相关的句柄信息。
    u 在minidump中包含已卸载模块信息。仅在Windows Server 2003和之后版本的Windows中可用。
    t 在minidump中包含附加的线程信息。包括可以在调试minidump时使用!runaway扩展命令或.ttime (Display Thread Times)命令进行显示的线程时间。
    i 在minidump中包含次级内存(secondary memory)。次级内存是由堆栈中的指针或备份存储(backing store)中引用到的任何内存,加上该地址周围的一小段区域。
    p 在minidump中包含进程环境块(PEB)和线程环境块(TEB)。这在想访问程序的进程和线程相关的Windows系统信息时很有用。
    w 将所有已交付的可读写的私有页面包含进minidump。
    d 在minidump中包含可执行映像中所有可读写的数据段。
    c 加入映像中的代码段。
    r 从minidump中去掉对重建调用堆栈无用的堆栈和存储内存部分。局部变量和其他数据类型值也被删除。这个选项不会使得minidump变小(因为这些内存节仅仅是变成0),但是当想保护其他程序中的机密信息时有用。
    R 在minidump中去掉完整的模块路径。仅包含模块名。如果想保护用户的目录结构时该选项有用。

    这些MiniOptions 只能在创建用户模式minidump时使用。它们需要跟在 /m 修饰符后面。

    /u
    在dump文件名中添加日期、时间和PID。这可以确保dump文件名的唯一性。
    /a
    所有当前正在调试的进程创建dump。如果使用了/a,也必须使用/u 选项来保证每个文件有唯一的名字。
    /b[a]
    创建一个.cab 文件。如果包含该选项, FileName 会被当作CAB文件名,而不是dump文件名。会先创建一个临时的dump文件,然后将该文件打包为CAB,然后删除它。如果b后面跟了a,所有的符号和映像文件也会打包到CAB中。
    /c "Comment"
    指定要写入dump文件的注释字符串。如果Comment 中包含空格,则必须用双引号将它括起来。当dump文件加载时会显示这个Comment 字符串。
    /xc Address
    (仅用户模式minidump) 在dump文件中加入上下文记录。Address必须指定上下文记录的地址。
    /xr Address
    (仅用户模式minidump) 在dump文件中加入一个异常记录。Address 必须指定该异常记录开始的地址。
    /xp Address
    (仅用户模式minidumps) 在dump文件中加入一个上下文记录和异常记录。Address 必须指定一个包含上下文记录和异常记录指针的 EXCEPTION_POINTERS 结构的地址。
    /xt ThreadID
    (仅用户模式minidumps) 指定将会作为dump文件的异常线程的系统线程的ID。
    /kpmf File
    (仅创建内核模式完整内存dump) 指定一个包含物理内存页面数据的文件。
    FileName
    指定dump文件名。可以设置完整路径和文件名,或者只设置文件名。如果文件名中包含空格,则需要用引号将FileName 括起来。如果没有指定路径,会使用当前目录。
    -?
    显示该命令的帮助。在用户模式和内核模式下显示的文本是不同的。

    环境

    模式 用户模式、内核模式
    目标 活动目标、崩溃转储
    平台 所有

    注释

    该命令可以在各种情况下使用:

    • 进行用户模式活动调试时,该命令创建目标程序的dump文件,但是目标程序不会被结束。
    • 内核模式活动调试时,该命令创建目标机的dump文件,但是目标机不会崩溃。
    • 调试dump文件时,该命令从旧文件创建出一个新的dump文件。这在有一个大的dump文件但是又想创建一个更小的文件时有用。

    可以控制dump文件的类型:

    • 内核模式下,使用/f选项来生成完整内存转储。使用/m选项(或不带选项)来生成小内存转储。.dump命令不能创建内核内存转储。
    • 用户模式下,使用.dump /m[MiniOptions] 是最好的选择。虽然"m" 代表着"minidump",但是使用MiniOption创建的dump文件可以很小也可以很大。通过指定合适的MiniOptions ,可以精确的控制包含的信息。例如,.dump /ma 产生包含大量信息的dumo文件。.dump /f命令产生大小适中的"标准dump"文件,并且不能进行自定义。

    不能指定要转储的进程。所有运行中的进程都会转储下来。

    /xc /xr/xp /xt 选项用来在dump文件中保存异常和上下文信息。这使得该dump文件可以使用 .ecxr (Display Exception Context Record)

    下面的示例创建一个包含完整内存和句柄信息的用户模式minidump:

    0:000> .dump /mfh myfile.dmp 

  • 相关阅读:
    开放平台整理
    Ubuntu Linux之软件源 解释
    遇到的几个linux问题,顺便把网上查到的帖过来
    Linux之网络配置
    Linux维护之Grub应用与问题汇总
    Linux维护之我用过的命令汇总(没多少意义,给我自己看的)
    大数据hadoop目录
    大数据hadoop环境搭建伪分布式模式
    大数据数据分析numpy库数组创建方式、数组的数据类型
    大数据hadoop运行模式
  • 原文地址:https://www.cnblogs.com/yilang/p/13031394.html
Copyright © 2011-2022 走看看