tb(跟踪到下一个分支)
tb 命令执行程序,直到达到分支指令。
tb [r] [= StartAddress] [Count]
参数
r
打开和关闭寄存器和标志的显示。 默认情况下将显示寄存器和标志。 可以使用 tbr、pr、tr 或 .prompt_allow -reg 命令禁用注册显示。 所有这些命令都控制相同的设置,你可以使用其中任何命令替代上述任何命令的使用。
还可以使用 l-os 命令禁用寄存器显示。 此设置与其他四个命令分开。 要控制显示哪些寄存器和标志,请使用 rm (Register Mask) 命令。
StartAddress
指定调试器开始执行的地址。 如果不使用 StartAddress,则执行从指令指针指向的指令开始。 有关语法的详细信息,请参阅地址和地址范围语法。
计数
指定要允许的分支数。 每次遇到分支时,都会显示指令地址和指令。 如果省略 Count,则默认数字为 1。
环境
模式 |
基于 x86: 仅 基于内核模式 x64: 用户模式、内核模式 |
目标 |
仅限实时调试 |
平台 |
基于 x86(正版Intel 处理器系列 6 及更高版本),基于 x64 |
其他信息
有关相关命令的详细信息,请参阅 控制目标。
注解
tb 命令导致目标开始执行。 此执行将继续执行,直到达到分支命令。
执行将在要执行的任何分支命令处停止。 即使调试器处于源模式,这种停止执行始终基于 反汇编 代码。
分支指令包括调用、返回、跳转、计数循环和 while 循环。 如果调试器遇到无条件分支,或者条件分支为 true,则执行将停止。 如果调试器遇到条件分支,其条件为 false,则继续执行。
执行停止时,将显示分支指令的地址和任何关联的符号。 此信息后跟一个箭头,然后是新程序计数器位置的地址和说明。
tb 命令仅适用于当前处理器。 如果在多处理器系统上使用 TB ,则当到达分支命令或发生其他处理器的事件时,执行将停止,以先到者为准。
通常,在初始化处理器控制块(PRCB)后启用分支跟踪。 (中国银行在启动过程中的早期初始化。但是,如果在此点之前必须使用 tb 命令,则可以使用.force_tb(强制允许分支跟踪)提前启用分支跟踪。 请谨慎使用 .force_tb 命令,因为它可能会损坏处理器状态。