Windows系统崩溃转储分析全解析
1. 崩溃分析基础
在进行系统崩溃分析时,首先会注意到Kd在尝试加载Myfault.sys和Not-myfault.exe的符号文件时报告错误。这是因为这些符号文件不在符号文件路径中(该路径配置为指向Microsoft符号服务器),对于非操作系统自带的第三方驱动和可执行文件,也会看到类似的错误。
分析文本通常较为简洁,会显示数字停止代码和错误检查参数,随后是“可能由……引起”的提示,表明分析引擎认为的故障驱动程序。在某些情况下,分析引擎能准确指出问题,如直接指向Myfault.sys,此时就无需手动分析。
“跟进”(Followup)行通常用处不大,但在Microsoft内部有一定作用。调试器会在Windows调试工具安装目录下Triage文件夹中的Triage.ini文件中查找模块名称,该文件的Microsoft内部版本列出了负责处理特定驱动程序崩溃的开发人员或团队,调试器会在合适时在“跟进”行显示他们的名字。
2. 详细分析
即使对Notmyfault崩溃的基本分析已确定了故障驱动程序,也建议通过输入命令“!analyze –v”让调试器执行详细分析。详细分析与默认分析的显著区别在于对停止代码及其参数的描述,以下是在同一转储文件上执行该命令的输出示例:
DRIVER_IRQL_NOT_LESS_OR_EQUAL (d1) An attempt was made to access a pageable (or completely invalid) address at an interrupt requ