一款非常好用的IIS故障调试工具。Debug Diagnostic Tool (DebugDiag)是用来帮助诊断IIS/COM+等应用假死、性能差、内存泄露及碎片和崩溃等问题的工具。
DebugDiag最初是为了帮助分析IIS的性能问题而开发的,它同样可以用于任何其他的进程。
■进程崩溃数据收集:这一点非常像Windows调试器,DebugDiag将附加到一个进程,并且在程序崩溃或者发生异常时生成转储文件。
■内存泄漏:DebugDiag工具将一个DLL注入到需要检测内存泄漏的进程中,并且监测进程中的内存分配情况。然后,它将生成一个转储文件,而开发人员可以对这个文件进行分析以找出发生泄漏的代码。根据在程序中使用的不同内存分配模式,这个工具可以计算泄漏概率(Leak Probability)。
■一个功能强大的可扩展对象模型(基于COM):它可以提供一些在分析内存泄漏和进程崩溃时需要的信息。
在安装IIS诊断工具集时可以选择“Typical”安装选项。
补充:通过DebugDiag可以来分析和跟踪内存泄漏和进程崩溃。
1. 按照操作系统的类型(32位或是64位)安装。
2. 在Debug Diagnostic Tool 1.2应用程序组中运行DebugDiag 1.2。
3. 配置Crash规则。
4.选择需要监控的程序,如果是IIS应用,可以选择特定的应用程序池。
5.这是需要监控的IIS应用程序池.
6. 注意 CLR 4.0 and CLR 1.0~3.5 有不同的异常码。
在.Net Exception Type中填入特定的异常,比如System.Data.SqlClient.SQLException。
ActionType指定当异常发生时,产生FullDump, MiniDump或是Log。
ActionLimit指定FullDump或MiniDump的数量,如果填入0就不会限制数量。同时如果只是需要产生Log的话,就不受ActionLimit限制。
7. 指定规则的名字和Dump产生的路径。
9. 在“Rules”标签下的规则已经处于激活状态。
10. 当.Net异常发生之后,在第7步配置的Userdump Location下会有dump文件(后缀名为dmp)产生。
分析创建出来的Dump文件:
Debugdiag工具同时能帮助分析各种Dump文件。在本文ASP.Net异常dump文件产生出之后,可以参考以下步骤分析:
1. 打开Debugdiag工具,在Tools->Options and Settings->Folders and Search Paths->Symbol Search Path For Analysis里填入:
SRV*f:localsymbols*http://msdl.microsoft.com/download/symbols
其中f:localsymbols可以用硬盘中的目录替代,http://msdl.microsoft.com/download/symbols是微软公用symbol的URL,不用改变。
2. 在Advanced Analysis页中,选择Crash/Hang Analyzers,并点击Add Files…按钮选择生成出的dump文件(后缀名为.dmp)。Debugdiag会因此分析dump文件并产生报告。