Windbg收集dump文件方法

Windbg收集dump文件方法

近日用C#调试第三方公司提供C++的SDK出现一些问题,C#调用非托管代码时如果函数内部出现异常问题,调用程序将捕捉不到任何异常信息直接退出,因此调用非托管代码推荐使用进程通信方式。回到问题,我调用C++接口在程序运行一段时间后容易出现崩溃,由于没有日志记录对方开发人员不认账,这时候就用的了Windbg这个神器!

一、简介

Windbg是专门针对Windows NT系列操作系统而设计的调试器。由于在开发人员的机器上都安装有VS,可以直接通过VS调试代码定位崩溃问题,但是客户和测试人员的机器上没有VS,所以windbg更多的是安装在客户或者测试人员机器上进行数据获取和分析。

二、软件使用

1、attach到进程

点击File下的Attach to a Process,选择需要调试的进程,然后点击OK。
Windbg收集dump文件方法
出现‘>’符号时,说明进程加载完毕,输入g然后回车,让进程继续运行。一旦程序崩溃,会重新出现‘>’符号,以便我们输入信息进行调试。
此步操作相当于监控某个进程,如果一个程序有多个进程(类似于上图的chrome.exe)那就需要需要在资源管理器重看看哪个CPU使用率和内存使用率较大。

2、待崩溃之后会出现就收集dump文件。

在命令行中输入.dump /ma D:\Test.dump ,生成dump文件。