Debugging Tools for Windows

t (Trace)

t 命令执行单条指令或源码行,并选择性的显示所有寄存器和标志位的结果。当发生子过程调用或中断时,它们的每一步也会被跟踪。

语法

用户模式

[~Threadt [r] [= StartAddress] [Count] ["Command"

内核模式

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

参数

Thread
指定要解冻的线程。所有其它线程都会被冻结。该语法的更多信息,查看线程语法。只有用户模式下可以指定线程。
r
打开或关闭寄存器和标志位的显示。默认情况下,寄存器和标志会被显示出来。可以通过prtr.prompt_allow -reg命令来禁止显示寄存器。所有这三个命令都可以控制相同的设置,可以用它们中任意一个来覆盖前面命令的设置。 

也可以使用l-os来禁止显示寄存器。该设置 和其他三条命令是分离的。使用rm (Register Mask)命令来控制显示哪些寄存器和标志位。

StartAddress
指定执行开始的地址。如果不使用StartAddress,则从指令指针指向的位置开始执行。该语法的更多信息,查看地址和地址区域语法
Count
指定在停止之前要跟踪的指令条数或源码行数。每一步都在调试器命令窗口中作为单独的动作显示出来。默认值为1。
Command
指定在跟踪完成后要执行的调试器命令。该命令在标准的t结果显示之前执行。如果还使用了Count,该命令当所有跟踪完成后执行 (但是在最后一部跟踪的结果显示之前)。

环境

模式 用户模式、内核模式
目标 仅活动目标
平台 所有

注释

指定了Count时,每条指令都像它们作为单独一步一样进行显示。

根据调试器在汇编模式还是源码模式,每步跟踪都执行单独的一条汇编指令或源码行。使用l+t l-t 命令或WinDbg工具栏上的按钮来在这些模式间切换。

如果想跟踪大部分函数调用,但是跳过某些特定的调用,可以使用.step_filter (Set Step Filter)来指定哪些调用应该步过。

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

如果在WinDbg中很快的跟踪很多次,调试信息窗口每次跟踪都会刷新。如果这种刷新使得响应变慢,可以使用.suspend_ui (Suspend WinDbg Interface)来暂时停止这些窗口的刷新。

附加信息

关于如何使用t命令的更多信息和相关命令的概述,查看控制调试目标

Build machine: CAPEBUILD