一款非常好用的IIS故障調(diào)試工具。Debug Diagnostic Tool (DebugDiag)是用來(lái)幫助診斷IIS/COM+等應(yīng)用假死、性能差、內(nèi)存泄露及碎片和崩潰等問(wèn)題的工具。
DebugDiag最初是為了幫助分析IIS的性能問(wèn)題而開(kāi)發(fā)的,它同樣可以用于任何其他的進(jìn)程。
DebugDiag主要功能:
■進(jìn)程崩潰數(shù)據(jù)收集:這一點(diǎn)非常像Windows調(diào)試器,DebugDiag將附加到一個(gè)進(jìn)程,并且在程序崩潰或者發(fā)生異常時(shí)生成轉(zhuǎn)儲(chǔ)文件。
■內(nèi)存泄漏:DebugDiag工具將一個(gè)DLL注入到需要檢測(cè)內(nèi)存泄漏的進(jìn)程中,并且監(jiān)測(cè)進(jìn)程中的內(nèi)存分配情況。然后,它將生成一個(gè)轉(zhuǎn)儲(chǔ)文件,而開(kāi)發(fā)人員可以對(duì)這個(gè)文件進(jìn)行分析以找出發(fā)生泄漏的代碼。根據(jù)在程序中使用的不同內(nèi)存分配模式,這個(gè)工具可以計(jì)算泄漏概率(Leak Probability)。
■一個(gè)功能強(qiáng)大的可擴(kuò)展對(duì)象模型(基于COM):它可以提供一些在分析內(nèi)存泄漏和進(jìn)程崩潰時(shí)需要的信息。
在安裝IIS診斷工具集時(shí)可以選擇“Typical”安裝選項(xiàng)。
補(bǔ)充:通過(guò)DebugDiag可以來(lái)分析和跟蹤內(nèi)存泄漏和進(jìn)程崩潰。
運(yùn)用DebugDiag診斷ASP.Net異常:
1. 按照操作系統(tǒng)的類(lèi)型(32位或是64位)安裝。
2. 在Debug Diagnostic Tool 1.2應(yīng)用程序組中運(yùn)行DebugDiag 1.2。
3. 配置Crash規(guī)則。
4.選擇需要監(jiān)控的程序,如果是IIS應(yīng)用,可以選擇特定的應(yīng)用程序池。
5.這是需要監(jiān)控的IIS應(yīng)用程序池.
6. 注意 CLR 4.0 and CLR 1.0~3.5 有不同的異常碼。
在.Net Exception Type中填入特定的異常,比如System.Data.SqlClient.SQLException。
ActionType指定當(dāng)異常發(fā)生時(shí),產(chǎn)生FullDump, MiniDump或是Log。
ActionLimit指定FullDump或MiniDump的數(shù)量,如果填入0就不會(huì)限制數(shù)量。同時(shí)如果只是需要產(chǎn)生Log的話,就不受ActionLimit限制。
7. 指定規(guī)則的名字和Dump產(chǎn)生的路徑。
9. 在“Rules”標(biāo)簽下的規(guī)則已經(jīng)處于激活狀態(tài)。
10. 當(dāng).Net異常發(fā)生之后,在第7步配置的Userdump Location下會(huì)有dump文件(后綴名為dmp)產(chǎn)生。
分析創(chuàng)建出來(lái)的Dump文件:
Debugdiag工具同時(shí)能幫助分析各種Dump文件。在本文ASP.Net異常dump文件產(chǎn)生出之后,可以參考以下步驟分析:
1. 打開(kāi)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可以用硬盤(pán)中的目錄替代,http://msdl.microsoft.com/download/symbols是微軟公用symbol的URL,不用改變。
2. 在Advanced Analysis頁(yè)中,選擇Crash/Hang Analyzers,并點(diǎn)擊Add Files…按鈕選擇生成出的dump文件(后綴名為.dmp)。Debugdiag會(huì)因此分析dump文件并產(chǎn)生報(bào)告。