!analyze

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

User-Mode

    !analyze [-v] [-f | -hang] [-D BucketID] 
    !analyze -c [-load KnownIssuesFile | -unload | -help ]

Kernel-Mode

    !analyze [-v] [-f | -hang] [-D BucketID] 
    !analyze -c [-load KnownIssuesFile | -unload | -help ]
    !analyze -show BugCheckCode [BugParameters]

参数

-v
显示详细输出。

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

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

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

-D BucketID
仅显示与指定 BucketID 相关的那些项。

-show BugCheckCode [ BugParameters]
显示 BugCheckCode 指定的 bug 检查的相关信息。 BugParameters 指定最多四个 bug 检查参数(用空格分隔)。 您可以使用这些参数进一步优化搜索。

-c
调试器遇到已知问题时继续执行。 如果此问题不是 "已知" 问题,调试器将在目标中保持不变。

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

-load KnownIssuesFile
加载指定的已知问题文件。 KnownIssuesFile 指定该文件的路径和文件名。 此文件必须为 XML 格式。 您可以在 sdk 示例中找到示例文件,以便 \ \ 分析 _ 调试器安装目录的继续子目录。 (必须已执行完 Windows 调试工具的完全安装才能使用此文件。 )

KnownIssuesFile 文件中的已知问题的列表用于所有的 c 命令,直到你使用 -c **** -卸载 为止,或直到再次使用 -c **** 加载 之后 (新数据将替换旧数据) 。

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

-help
显示调试器中的 !分析 -c 扩展命令扩展的帮助 命令窗口

Dll

Ext.dll

其他信息

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

注解

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

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

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