抓取Dump工具汇总

一、Dump 抓取工具概览

工具适用场景特点推荐度
ProcDump 崩溃/无响应/CPU 或内存阈值触发 轻量级,支持监控启动,命令行灵活 ★★★★★
ADPlus 崩溃监控(-crash)/挂起分析(-hang) 集成于 WinDbg,支持多进程监控 ★★★★☆
WinDbg 实时附加调试/JIT 崩溃捕获 功能最强,支持完整内存转储 ★★★★☆
任务管理器 快速抓取运行中或无响应进程 无需安装,操作简单 ★★★☆☆
注册表配置 全系统任意程序崩溃自动抓取 无需人工干预,适合生产环境 ★★★★☆

 二、具体工具使用方法

  1. ProcDump(微软官方工具)

    • 安装:从 Sysinternals 官网 下载。  https://learn.microsoft.com/zh-cn/sysinternals/downloads/procdump

    • 常用命令:

      bash
       
      # 监控 test.exe 崩溃时抓取 Full Dump
      procdump.exe -ma -e test.exe C:\dumps\ 
      # 监控进程启动并抓取(适用启动即崩溃)
      procdump.exe -ma -w test.exe C:\dumps\
      # CPU 超 80% 时抓取
      procdump.exe -ma -c 80 -n 3 w3wp.exe C:\dumps\ 
    • 参数说明:-ma(完整内存转储),-e(崩溃时触发),-w(等待进程启动)

  2. ADPlus(WinDbg 组件)

    • 路径:安装 WinDbg 后位于 Debugging Tools for Windows 目录。

    • 关键命令:

      bash
       
      # 崩溃监控(抓取 Full Dump)
      ADPlus.exe -crash -FullOnFirst -pn test.exe -o C:\dumps
      # 挂起分析(抓取无响应进程)
      ADPlus.exe -hang -p 1234 -o C:\dumps
    • 注意:32/64 位进程需匹配对应位数的 ADPlus

  3. WinDbg

    • 实时附加抓取:

      bash
       
      .dump /ma C:\dump\process.dmp  # 附加进程后执行
    • 配置 JIT 调试(崩溃自动弹窗):

      bash
       
      windbg -I  # 注册为默认调试器,崩溃时手动输入命令抓取:cite[3]:cite[5]
  4. 任务管理器

    • 进程列表 → 右键目标进程 → “创建转储文件” → 默认生成在 %TEMP% 目录28。

  5. 注册表自动抓取(全系统配置)

    • 创建注册表脚本 AutoDump.reg

      reg
       
      Windows Registry Editor Version 5.00
      [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps]
      "DumpFolder"="C:\\CrashDump"
      "DumpType"=dword:00000002  # 2=Full Dump
      "DumpCount"=dword:0000000a  # 保留最近10个
    • 运行后,任意程序崩溃将自动生成 Full Dump 到 C:\CrashDump


三、高级技巧与注意事项

  1. Dump 类型选择

    • MiniDump(.dmp):体积小,含基础信息(线程栈、模块列表)。

    • Full Dump(/ma):包含完整内存,利于深度分析内存泄漏或复杂崩溃8。

  2. 32/64 位兼容性

    • 在 64 位系统抓 32 位进程时,需使用对应位数的工具(如 SysWOW64\Taskmgr.exe

  3. 自动抓取配置(无弹窗)

    • 通过注册表调用 CDB(WinDbg 组件),崩溃时静默抓取:

      reg
       
      "Debugger"="\"C:\\debuggers\\cdb.exe\" -pv -p %ld -c \".dump /ma C:\\dumps\\dump.dmp; .kill; qd\""

      此配置可避免用户交互4。

  4. 分析工具推荐

    • WinDbg:原生支持 Dump 分析,命令如 !analyze -v

    • Visual Studio:打开 .dmp 文件可视化调试。

    • CrashRpt/CrashFix:自动化收集与分析框架79。


 四、选择建议

  • 快速抓取交互进程 → 任务管理器

  • 监控未知崩溃时间 → ProcDump/ADPlus -crash 或注册表自动抓取

  • 生产环境无人值守 → 注册表配置静默抓取

  • 深度分析需求 → WinDbg 抓取 Full Dump

posted @ 2025-07-09 19:11  卖雨伞的小男孩  阅读(285)  评论(0)    收藏  举报