t(跟踪)

t 命令执行单个指令或源行,并选择性地显示所有寄存器和标志的结果值。 当子例程调用或中断发生时,其每个步骤还会被跟踪。

用户模式

[~Thread] t [r] [= StartAddress] [Count] ["Command"] 

内核模式

t [r] [= StartAddress] [Count] ["Command"] 

参数

线程
指定要解冻的线程。 所有其他线程都被冻结。 有关此语法的详细信息,请参阅线程语法。 只能在用户模式下指定线程。

r
打开和关闭寄存器和标志的显示。 默认情况下将显示寄存器和标志。 可以使用 prtr 或 .prompt_allow -reg 命令来禁用寄存器显示。 这三个命令控制相同的设置,可以使用其中任何一个命令来替代以前对这些命令的任何使用。

还可以使用 l-os 命令禁用寄存器显示。 此设置与其他三个命令是分开的。 要控制显示哪些寄存器和标志,请使用 rm (Register Mask) 命令。

StartAddress
指定应开始执行的地址。 如果不使用 StartAddress,则执行从指令指针指向的指令开始。 有关语法的详细信息,请参阅地址和地址范围语法

计数
指定要在停止之前跟踪的指令或源行数。 每个步骤都显示为调试器命令窗口中的单独操作。 默认值为 1。

命令
指定要在执行步骤后跟踪的调试器命令。 此命令在显示标准 t 结果之前执行。 如果还使用 Count,则会在所有跟踪完成后执行此命令(但在显示最终跟踪的结果之前)。

环境

说明
模式 用户模式、内核模式
目标 仅限实时调试
平台 全部

其他信息

有关如何发出 t 命令和相关命令概述的详细信息,请参阅控制目标

注解

指定 Count 时,每个指令都会在逐步执行时显示。

每个跟踪都会执行单个程序集指令或单个源行,具体取决于调试器处于程序集模式还是源模式。 使用 WinDbg 工具栏上的 l+t 和 l-t 命令或按钮在这些模式之间切换。

如果要跟踪大多数函数调用但跳过某些调用,可以使用 .step_filter(设置步骤过滤器)来指示跳过哪些调用。

可以使用 t 命令来跟踪 ROM 中的说明。

在 WinDbg 中多次快速跟踪时,每次跟踪后都会更新调试信息窗口。 如果此更新导致响应时间变慢,请使用 .suspend_ui(挂起 WinDbg 接口)暂时挂起这些窗口的更新。