!analyze (WinDbg)

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

用户模式

    !analyze [-v[0..99]] [-f | -hang]
    !analyze [-v[0..99]] -xml [-xmi] [-xcs] [-xmf OutputXmlFile]
    !analyze -c [-load KnownIssuesFile | -unload | -help ]

内核模式

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

一般参数

-v[0..99]

显示详细输出。 可以通过指定一个介于 0 到 99 的数字来显示更多信息。 如果未指定数字,则默认值为 1。 还可以指定“非常详细”(-vv) 以显示所有可用信息。

对于用户模式,-v6 显示全局和每个线程上已发现的内容。

-f

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

-hang

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

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

显示参数

-显示 BugCheckCode [BugParameters]

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

继续执行参数

-c

当调试器遇到已知问题时继续执行。 如果问题不是已知问题,调试器仍会进入目标。

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

-负荷 KnownIssuesFile
加载指定的已知问题文件。 KnownIssuesFile 指定此文件的路径和文件名。 此文件必须采用 XML 格式。

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

-unload

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

-help

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

XML 加载选项参数

-xml

以 XML 格式生成分析输出。

-xmi

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

-xcs

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

-xmf OutputXmlFile

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

DLL

ext.dll

其他信息

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

注解

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

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

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

另请参阅