2024年6月15日发(作者:)
IIS 调试技术之 Debug Diagnostic (调试诊断)
系统出现错误或崩溃,免不了要进行调试。调试能进行的前提是错误能重现,但实际上要重现一个
错误有时比重新设计代码还困难,所以在错误出现之时,能够及时把系统状态记录下来是当务之急,即
我们所说的抓取 DUMP (内存转储文件)。
如何抓取 DUMP?相信不少同学都已经知道了,使用 WinDbg 或 Debug Diagnostic Tool 抓
取。
如何自动抓取 DUMP?具体的说,就是当特定异常发生时如何自动抓取 DUMP。这个问题使用
WinDbg 解决会有点困难,但是使用 Debug Diagnostic Tool 却是非常容易。
先介绍一下 Debug Diagnostic Tool,相信有不少同学已经用过它抓取 DUMP,不过基本都是手
动选取进程抓取。
此工具常用的功能主要有两个:抓取 DUMP 和分析 DUMP。另外,它还可以附加到进程进行调
试,或是监视内存和句柄的泄漏。
与 WinDbg 相比,Debug Diagnostic Tool 的分析功能实在不怎么样,不过它定制抓取 DUMP
的功能却是 WinDbg 所不能比的。下面我们就来看看如何使用 Debug Diagnostic Tool 抓取
DUMP。
1. 手动抓取 DUMP
对于只有一个应用程序池的 IIS 来说,我们只要在 Debug Diagnostic Tool 中的 Processes 标
签页中找到进程名为“”的进程,然后右键选择“Create Full Userdump”即可。
第 1 页 共 6 页
不过通常情况下,我们会用应用程序池把不同的站点和虚拟目录分开,这时系统里会有多个名为
“”的进程。我们可以在命令提示符下执行“iisapp”,得到进程 ID 与应用程序池的对应关
系,然后在 Debug Diagnostic Tool 中根据进程 ID 选取要抓取 DUMP 的进程。
第 2 页 共 6 页


发布评论