!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 会尝试标识负责的驱动程序。