当前位置: 首页 > news >正文

使用 WinDbg 启动程序并捕获崩溃转储的完整流程

1. 启动 WinDbg 并配置符号路径

首先打开 WinDbg,配置符号服务器以便获取调试符号:

.symfix                 // 设置默认微软符号服务器
.sympath+ C:\MySymbols  // 添加自定义符号路径
.reload                 // 重新加载符号

2. 启动目标应用程序

方法1:直接通过 WinDbg 启动

File → Open Executable...
或
Ctrl+E

选择你的可执行文件,WinDbg 会立即启动该程序。

方法2:使用命令行启动

windbg.exe -o "C:\Path\To\YourApp.exe" [参数]

3. 设置崩溃时自动捕获转储

在程序运行前设置自动转储捕获:

.symopt+0x40           // 启用延迟符号加载
.dump /ma C:\dumps\crash.dmp  // 设置转储路径(但此时不会执行)

更推荐设置崩溃时自动执行的命令:

.events                // 查看当前事件过滤器
sxe -c ".dump /ma C:\dumps\crash.dmp; q" av  // 访问冲突时捕获转储并退出
g                     // 开始运行程序

4. 程序崩溃时的处理

当程序崩溃时,WinDbg 会自动中断,此时:

手动创建转储文件(如果未设置自动捕获)

.dump /ma C:\dumps\crash_manual.dmp

分析崩溃点

!analyze -v            // 自动分析崩溃原因
kb                     // 查看调用堆栈

5. 高级转储选项

创建完整转储(推荐)

.dump /ma C:\dumps\full_crash.dmp

/ma 选项表示创建包含完整内存、句柄和线程信息的转储。

创建小型转储

.dump /m C:\dumps\mini_crash.dmp

6. 转储后分析

捕获转储后,可以重新用 WinDbg 分析:

windbg.exe -z C:\dumps\crash.dmp

注意事项

  1. 确保有足够的磁盘空间存放转储文件(完整转储可能很大)

  2. 对于服务程序,可能需要附加(attach)而不是直接启动

  3. 转储路径需要有写入权限

  4. 对于.NET应用程序,考虑加载SOS扩展进行更深入分析

相关文章:

  • MD5和sha1绕过方式总结
  • 悟空黑桃 下载地址
  • 杰理791ble配网
  • 如何安静?
  • CGAL 计算直线之间的距离(3D)
  • 小天互连与DeepSeek构建企业智能化新生态
  • 博客系统-邮件发送-nginx-服务部署
  • 计算机视觉中的正则化:从理论到实践的全面解析
  • OSPF --- LSA
  • 华为设备命令部分精简分类汇总示例
  • 安卓的桌面 launcher是什么
  • 让数据应用更简单:Streamlit与Gradio的比较与联系
  • 【基础算法】二分算法详解
  • HTML 表单学习笔记
  • 19_大模型微调和训练之-基于LLamaFactory+LoRA微调LLama3
  • 第42讲:走进智慧农业的“感知神经系统”——农田遥感 + 边缘计算的融合实践
  • [SpringBoot]配置文件
  • Kubeflow 快速入门实战(三) - Qwen2.5 微调全流程
  • 大模型学习笔记 day01
  • SVM(支持向量机)
  • 经济日报刊文谈外卖平台仍试图凭补贴制造超低价:苦练内功摆脱“内卷式”竞争
  • 陈杨梅:刷到“棉花糖爸爸”寻女视频,隐约觉得自己就是爸爸要找的孩子
  • 发布近百条《原神》涉密游戏内容,游戏资讯网站被判赔33万元
  • 习近平向加蓬当选总统恩圭马致贺电
  • 大理州工业投资(集团)有限公司党委副书记、副总经理赵云接受审查调查
  • “云南舞蹈大家跳”暨牟定“三月会”下周举行,城际公交免票