tb(跟踪到下一个分支)

tb 命令执行程序,直到到达分支指令。

tb [r] [= StartAddress] [Count] 

参数

R
打开和关闭寄存器和标志的显示。 默认情况下,将显示寄存器和标志。 可以使用 tbrprtr 或 .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) 后,会启用分支跟踪。 (在启动过程的早期初始化 PRCB。) 但是,如果在此之前必须使用 tb 命令,可以使用 .force_tb (强制允许分支跟踪) 提前启用分支跟踪。 请谨慎使用 .force_tb 命令,因为它可能会损坏处理器状态。