!analyze

!analyze 扩展显示有关当前异常或 bug 检查的信息。

User-Mode

    !analyze [-v] [-f | -hang] [-D BucketID] 
    !analyze [-v] -xml [-xmi] [-xcs] [-xmf OutputXmlFile]
    !analyze -c [-load KnownIssuesFile | -unload | -help ]

Kernel-Mode

    !analyze [-v] [-f | -hang] [-D BucketID] 
    !analyze [-v] -xml [-xmi] [-xcs] [-xmf OutputXmlFile]
    !analyze -c [-load KnownIssuesFile | -unload | -help ]
    !analyze -show BugCheckCode [BugParameters]

参数

-v
显示详细输出。

-f
生成 !analyze 异常输出。 即使调试器未检测到异常,也可以使用此参数查看异常分析。

-hang
生成 !analyze hung-application 输出。 当目标遇到 bug 检查或异常时,请使用此参数,但分析应用程序挂起的原因与问题更相关。 在内核模式下, analyze-hang 调查系统持有的锁,然后扫描 DPC 队列链。 在用户模式下, analyze-hang 分析线程堆栈,以确定任何线程是否阻止其他线程。

在用户模式下运行此扩展之前,请考虑将当前线程更改为认为已停止响应 (的线程,即挂起) ,因为异常可能已将当前线程更改为不同的线程。

-DBucketID
仅显示与指定 BucketID 相关的项。

-showBugCheckCode [BugParameters]
显示有关 BugCheckCode 指定的 bug 检查的信息。 BugParameters 指定最多四个 bug 检查参数,用空格分隔。 通过这些参数可以进一步优化搜索。

-c
当调试器遇到已知问题时继续执行。 如果问题不是“已知”问题,调试器将仍然分解为目标。

可以将 -c 选项用于以下子参数。 这些子参数配置已知问题的列表。 它们不会自行执行。 在至少一次运行 analyze-c-load **** 之前,analyze-c 不起作用。

-loadKnownIssuesFile
加载指定的已知问题文件。 KnownIssuesFile 指定此文件的路径和文件名。 此文件必须采用 XML 格式。 可以在调试器安装目录的 sdk\samples\analyze_continue 子目录中找到示例文件。 (必须执行 Windows 调试工具的完整安装才能拥有此文件。)

KnownIssuesFile 文件中的已知问题列表用于以后的所有 -c 命令,直到使用 -c-unload **** ,或者直到再次使用 -c-load **** (,此时新数据将替换旧数据) 。

-unload
卸载已知问题的当前列表。

-xml
以 XML 格式生成分析输出。

-xmi
将模块信息添加到 xml 输出。 此选项需要 -xml 或 -xmf。

-xcs
将上下文和调用堆栈帧添加到 xml 输出。 此选项需要 -xml 或 -xmf。

-xmfOutputXmlFile
以 XML 格式将分析写入指定的 OutputXmlFile 。 如果文件已存在,将覆盖该文件。 除非还指定了 -xml 选项,否则不会向控制台或日志生成任何分析输出。

-help
调试器命令窗口中显示 analyze-c 扩展命令扩展的帮助。

DLL

Ext.dll

其他信息

有关用户模式异常和内核模式停止错误的示例分析 ((即崩溃) )以及 !analyze 如何使用 triage.ini 文件的详细信息,请参阅 使用 !analyze 扩展

备注

在用户模式下, !analyze 显示有关当前异常的信息。

在内核模式下, !analyze 将显示有关最新 bug 检查的信息。 如果发生 bug 检查,则会自动生成 !analyze 显示。 可以使用 analyze-v 来显示其他信息。 如果只想查看基本 bug 检查参数,可以使用 .bugcheck (显示 Bug 检查数据) 命令。

对于使用 User-Mode Driver Framework (UMDF) 2.15 或更高版本的驱动程序, !analyze 提供有关 UMDF 验证程序失败和未经处理的异常的信息。 执行实时内核模式调试以及分析用户模式内存转储文件时,此功能可用。 对于 UMDF 驱动程序崩溃, !分析 尝试识别负责任的驱动程序。