!analyze (WinDbg)
!analyze 扩展显示有关当前异常或 bug 检查的信息。
用户模式
!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 异常输出。 即使调试器未检测到异常,也可以使用此参数查看异常分析。
-挂
生成 !analyze 挂起应用程序输出。 当目标遇到 bug 检查或异常时,请使用此参数。 但是,分析应用程序挂起的原因与问题更相关。 在内核模式下, !analyze-hang 会调查系统持有的锁,然后扫描 DPC 队列链。 在用户模式下, !analyze-hang 会分析线程堆栈,以确定是否有线程阻止了其他线程。
在用户模式下运行此扩展之前,请考虑将当前线程更改为你认为已停止响应的线程, (即挂起) 。 应执行此更改,因为异常可能已将当前线程更改为其他线程。
显示参数
-显示BugCheckCode
[BugParameters]
显示由 指定的 BugCheckCode
bug 检查的相关信息。 BugParameters
指定最多四个 bug 检查用空格分隔的参数。 这些参数使你能够进一步优化搜索。
继续执行参数
-c
在调试器遇到已知问题时继续执行。 如果问题不是已知问题,调试器仍会中断到目标中。
可以将 -c 选项与以下子参数一起使用。 这些子参数配置已知问题的列表。 它们不会导致执行本身发生。 在运行 !analyze-c-load **** 至少一次之前,!analyze-c 不起作用。
-负荷KnownIssuesFile
加载指定的已知问题文件。 KnownIssuesFile
指定此文件的路径和文件名。 此文件必须采用 XML 格式。
文件中的已知问题 KnownIssuesFile
列表用于所有后续 的 -c 命令,直到使用 -c-unload,或直到再次使用 -c-load (此时新数据将替换旧数据) 。
-卸载
卸载已知问题的当前列表。
-help
在调试器命令窗口中显示 !analyze-c 扩展命令扩展的帮助。
XML 加载选项参数
-Xml
生成 XML 格式的分析输出。
-Xmi
将模块信息添加到 xml 输出。 此选项需要 -xml 或 -xmf。
-xcs
将上下文和调用堆栈帧添加到 xml 输出。 此选项需要 -xml 或 -xmf。
-xmfOutputXmlFile
以 XML 格式将分析写入指定的 OutputXmlFile
。 如果文件存在,将覆盖该文件。 除非还指定了 -xml 选项,否则不会向控制台或日志生成分析输出。
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 驱动程序崩溃, !analyze 会尝试识别负责的驱动程序。
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈