debug diagnostic tool是一款功能强大的IIS故障调试工具,可以用于针对IIS/COM+等应用假死、性能差、内存泄露和常见的崩溃问题了,附加了一个进程可以在程序崩溃或者发生异常时声称转储文件,从而进行故障诊断,小编还带来了详细的使用教程,需要的朋友可以下载!
软件功能
1、进程崩溃数据收集
这一点非常像Windows(窗口化操作系统)调试器,DebugDiag将附加到一个进程,并且在程序崩溃或者发生异常时生成转储文件
2、内存泄漏
DebugDiag工具将一个DLL注入到需要检测内存泄漏的进程中,并且监测进程中的内存分配情况。然后,它将生成一个转储文件,而开发人员可以对这个文件进行分析以找出发生泄漏的代码。根据在程序中使用的不同内存分配模式,这个工具可以计算泄漏概率(Leak Probability)
3、一个功能强大的可扩展对象模型(基于COM)
它可以提供一些在分析内存泄漏和进程崩溃时需要的信息
debug diagnostic tool使用教程
这东西要装在你的IIS Server上,不过个人工作的电脑通常也要装,因为dump完大概下一件事就是赶快重开机让production server赶快回复运作,哪里还有那种美国时间让你在上面跑分析而且分析过程中要上网download symbol file,有时候production server是不对外的,装完以后就像这样,放在程式集里面
执行起来的画面像这样,当你的IIS挂掉时,先不要急着重开
1.赶快先把犯罪的证据保留下来,从Tools->Create IIS Hang Dump将IIS相关的process都dump下来
2.然后再用最下面的Add Data Files将dump的结果读进来
3.在上面的ListBox选择Crach/Hang Analyzers
4.点选下面的Start Analysis
就这样,够简单了那分析结果如何解读? Watch this
直接告诉你哪一个thread block住后面的程式,那么thread 19是什么?点一下超连结
直接告诉你这是哪支ASP,连第几行都告诉你了
那.NET程式可不可以?
我写了一个无穷回圈的webservice
dump出来的report像这样
DebugDiag诊断ASP.Net异常:
1. 按照操作系统的类型(32位或是64位),下载DebugDiag工具并安装。
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文件并产生报告。