DebugDiag 监控程序的崩溃 生成dump文件

Debug Diagnostic Tool(DebugDiag)

The Debug Diagnostic Tool (DebugDiag) is designed to assist in troubleshooting issues such as hangs, slow performance, memory leaks or fragmentation, and crashes in any user-mode process.

DebugDiag主要用来分析进程(用户态)的内存泄漏、崩溃等问题。

利用DebugDiag监控程序的崩溃时生成.dmp文件

建立监控规则

Debug Diagnostic Tool可以选择不同的规则来进行dump文件。可以根据程序崩溃时捕获dump文件,也可以根据性能指标来进行捕获,如CPU过高,死锁,HTTP响应时间过程等参数

DebugDiag 监控程序的崩溃 生成dump文件_第1张图片
Step 1

DebugDiag 监控程序的崩溃 生成dump文件_第2张图片
Step 2

DebugDiag 监控程序的崩溃 生成dump文件_第3张图片
Step 3

DebugDiag 监控程序的崩溃 生成dump文件_第4张图片
Step 4: 选择要监控的程序

DebugDiag 监控程序的崩溃 生成dump文件_第5张图片
Step 5: 选择Full Userdump

DebugDiag 监控程序的崩溃 生成dump文件_第6张图片
Step 6: 选择保存dump文件的目录

DebugDiag 监控程序的崩溃 生成dump文件_第7张图片
Step 7

DebugDiag 监控程序的崩溃 生成dump文件_第8张图片
Step 8
生成dump文件

当被监控程序崩溃时, DebugDiag会自动生成dump文件。
写了一个简单的MFC的崩溃测试程序。

DebugDiag 监控程序的崩溃 生成dump文件_第9张图片
程序主界面

点击 Crash Test按钮后,调用如下代码:

// 测试崩溃的代码
void CpxMFCTestDlg::OnBnClickedButton1()
{
    // test for crash begin
    char *szTest = NULL;
    strcpy(szTest, "Hello World");
    // test for crash end
}

点击该按钮之后,DebugDiag会在C:\Dump下生成dump文件。


DebugDiag 监控程序的崩溃 生成dump文件_第10张图片
生成dump文件
利用windbg对dump文件进行分析

设置了Symbol File Path和Source File Path之后,即可调用!analyze -v命令对崩溃文件进行分析:

DebugDiag 监控程序的崩溃 生成dump文件_第11张图片
利用windbg分析dump文件

DebugDiag手动保存dump文件

也可以找到对应的进程,通过如下方法进行捕获。此种方式获取的dump文件放到C:\Program Files\DebugDiag\Logs\Misc下。


DebugDiag 监控程序的崩溃 生成dump文件_第12张图片
DebugDiag手动保存dump文件

dump文件保存地址

References:

http://www.pc6.com/softview/SoftView_102657.html
https://www.microsoft.com/en-us/download/details.aspx?id=26798
http://www.cnblogs.com/gmplayer/p/3220724.html

你可能感兴趣的:(DebugDiag 监控程序的崩溃 生成dump文件)