Freigeben über


tb (Ablaufverfolgung zum nächsten Branch)

Der Tb-Befehl führt das Programm aus, bis eine Branch-Anweisung erreicht ist.

tb [r] [= StartAddress] [Count] 

Parameter

R
Aktiviert und deaktiviert die Anzeige von Registern und Flags. Standardmäßig werden die Register und Flags angezeigt. Sie können die Registrierungsanzeige mit den Befehlen tbr, pr, tr oder .prompt_allow -reg deaktivieren. Alle diese Befehle steuern dieselbe Einstellung, und Sie können jeden dieser Befehle verwenden, um jede vorherige Verwendung dieser Befehle zu überschreiben.

Sie können die Registrierungsanzeige auch mit dem Befehl l-os deaktivieren. Diese Einstellung ist von den anderen vier Befehlen getrennt. Um zu steuern, welche Register und Flags angezeigt werden, verwenden Sie den Befehl rm (Register Mask).

StartAddress
Gibt die Adresse an, an der der Debugger mit der Ausführung beginnt. Wenn Sie StartAddress nicht verwenden, beginnt die Ausführung an der Anweisung, auf die der Anweisungszeiger verweist. Weitere Informationen zur Syntax finden Sie unter Adress- und Adressbereichssyntax.

Count
Gibt die Anzahl der zuzulassenden Verzweigungen an. Jedes Mal, wenn ein Branch gefunden wird, werden die Anweisungsadresse und die Anweisung angezeigt. Wenn Sie Count auslassen, ist die Standardnummer 1.

Environment

Modi

x86-basiert: Kernelmodus nur x64-basiert: Benutzermodus, Kernelmodus

Ziele

Nur Livedebuggen

Plattformen

x86-basiert (GenuineIntel-Prozessorfamilie 6 und höher), x64-basiert

Zusätzliche Informationen

Weitere Informationen zu verwandten Befehlen finden Sie unter Steuern des Ziels.

Hinweise

Der Tb-Befehl bewirkt, dass das Ziel mit der Ausführung beginnt. Diese Ausführung wird fortgesetzt, bis ein Branchbefehl erreicht wird.

Die Ausführung wird bei jedem branch-Befehl beendet, der ausgeführt werden soll. Dieses Beenden der Ausführung basiert immer auf dem Disassemblierungscode , auch wenn sich der Debugger im Quellmodus befindet.

Branchanweisungen umfassen Aufrufe, Rückgaben, Sprünge, gezählte Schleifen und While-Schleifen. Wenn der Debugger auf einen bedingungslosen Branch oder einen bedingten Branch trifft, für den die Bedingung true ist, wird die Ausführung beendet. Wenn der Debugger auf einen bedingten Branch trifft, dessen Bedingung false ist, wird die Ausführung fortgesetzt.

Wenn die Ausführung beendet wird, werden die Adresse der Branch-Anweisung und alle zugehörigen Symbole angezeigt. Auf diese Informationen folgen ein Pfeil und dann die Adresse und Anweisungen des neuen Programmzählerspeicherorts.

Der Tb-Befehl funktioniert nur auf dem aktuellen Prozessor. Wenn Sie tb auf einem Multiprozessorsystem verwenden, wird die Ausführung beendet, wenn ein Branchbefehl erreicht wird oder wenn das Ereignis eines anderen Prozessors auftritt, je nachdem, was zuerst eintritt.

In der Regel wird die Branchablaufverfolgung aktiviert, nachdem der Prozessorsteuerungsblock (PRCB) initialisiert wurde. (Die PRCB wird zu einem frühen Zeitpunkt des Startvorgangs initialisiert.) Wenn Sie jedoch vor diesem Punkt den Befehl tb verwenden müssen, können Sie .force_tb (Forcibly Allow Branch Tracing) verwenden, um die Branchablaufverfolgung früher zu aktivieren. Verwenden Sie den Befehl .force_tb vorsichtig, da er Ihren Prozessorstatus beschädigen kann.