windbg抓取dump
时间: 2025-01-02 14:32:42 浏览: 76
### 如何使用 WinDbg 创建和捕获 Dump 文件
当需要诊断应用程序中的问题时,创建 dump 文件是一个非常有用的工具。通过这些文件可以在不重现错误的情况下分析程序的状态。
#### 方法一:手动触发 Mini-Dump 或 Full-Dump 的生成
对于正在运行的应用程序,在 Windbg 中可以通过命令行来强制生成 dump 文件:
```plaintext
.dump /ma c:\path\to\save\file.dmp
```
这条指令将会保存一个完整的内存映像到指定路径下[^2]。
#### 方法二:配置 Windows 自动创建 Dump 文件
为了确保即使 Windbg 没有及时捕捉到异常也能获得 dump 数据,可以设置操作系统自动为崩溃的应用程序生成 mini-dumps。这通常是在系统属性->高级系统设置->启动和恢复选项里完成的。也可以利用注册表编辑器修改 `HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Error Reporting` 下的相关键值[^3]。
#### 方法三:编写代码模拟特定条件下的 Crash 并生成 Dump
作为开发者还可以主动控制何时生成 dump 文件。例如下面这段 C++ 测试代码展示了怎样故意制造一次访问冲突从而引发 crash,并最终由系统或调试器处理此事件并记录相应的 dump 信息:
```cpp
void myfunc(){
printf("join to myfunc...\n");
// 故意造成空指针解引用导致crash
char* p = NULL;
memcpy(p, "hello word", strlen("hello word"));
}
```
一旦上述函数被执行,则会产生未处理的异常状况,进而促使操作环境按照预设策略响应——比如调用调试器或者写入 minidump 到磁盘上等待后续审查。
#### 方法四:使用 ADPlus 工具自动化收集 Debugging Information
ADPlus 是一款附带于 Debugging Tools for Windows 套件内的实用程序,专门用来监控目标应用并在其遭遇严重错误时自动生成详细的 debug 报告连同关联的日志与 dumps。执行 adplus.vbs 脚本即可开始监视选定的服务或进程实例[^4]。
阅读全文
相关推荐














