tb (次のブランチまでトレース)
tb コマンドは、分岐命令に到達するまで、プログラムを実行します。
tb [r] [= StartAddress] [Count]
パラメーター
r
レジスタとフラグの表示をオンまたはオフにします。 既定では、レジスタとフラグが表示されます。 tbr、pr、tr、または .prompt_-reg コマンドを使用してレジスタの表示を無効にすることができます。 これらのコマンドのすべては、同じ設定を制御し、これらのコマンドの以前の使用をオーバーライドするそれらのいずれかを使用できます。
l-os コマンドを使用して、レジスタの表示を無効にすることもできます。 この設定は、他の 4 つのコマンドとは別のものです。 どのレジスタとフラグを表示するかを制御するには、rm (レジスタ マスク) コマンドを使用します。
StartAddress
デバッガーが実行を開始するアドレスを指定します。 StartAddress を使用しない場合、命令ポインタが指す命令から実行が開始されます。 構文の詳細については、「 アドレスとアドレス範囲の構文」を参照してください。
Count
許可する分岐の数を指定します。 分岐が検出されるたびに、命令アドレスと命令が表示されます。 Count を省略した場合、既定の数値は 1 です。
Environment
モード |
x86 ベース: カーネル モードのみ x64 ベース: ユーザー モード、カーネル モード |
Targets |
ライブデバッグのみ |
プラットフォーム |
x86 ベース (GenuineIntel プロセッサ ファミリ 6 以降)、x64 ベース |
追加情報
関連するコマンドの詳細については、「ターゲットを制御」を参照してください。
解説
tb コマンドにより、ターゲットの実行を開始します。 この実行は、分岐コマンドに到達するまで続行されます。
実行される分岐コマンドで実行が停止します。 デバッガーがソース モードの場合でも、この実行の停止は常に逆アセンブリ コードに基づいています。
分岐命令には、呼び出し、戻り値、ジャンプ、カウントされたループ、while ループが含まれます。 デバッガーで、条件が True の無条件分岐または条件分岐が検出された場合、実行は停止します。 デバッガーで、条件が False の条件分岐が検出された場合、実行は続行されます。
実行が停止すると、分岐命令のアドレスと、関連付けられているシンボルが表示されます。 この情報の後に矢印が続き、新しいプログラム カウンターの場所のアドレスと命令が表示されます。
tb コマンドは、現在のプロセッサでのみ機能します。 マルチプロセッサ システムで tb を使用すると、分岐コマンドに達したとき、または別のプロセッサのイベントが発生したときに、どちらか早い方の時点で実行が停止します。
通常、分岐トレースは、プロセッサー制御ブロック (PRCB) が初期化された後に使用可能になります。 (PRCB はブート プロセスの早い段階で初期化されます)。ただし、この時点より前に tb コマンドを使用する必要がある場合は、.force_tb (強制的に分岐トレースを許可) を使用することで、先に分岐トレースを有効にすることができます。 .force_tb コマンドはプロセッサの状態を破損する可能性があるため、注意して使用してください。