tb (Trace to Next Branch)
Der Befehl "tb " führt das Programm aus, bis eine Verzweigungsanweisung erreicht ist.
tb [r] [= StartAddress] [Count]
Parameter
r
Schaltet die Anzeige von Registern und Flags ein und aus. Standardmäßig werden die Register und Flags angezeigt. Sie können die Registeranzeige mit den Befehlen tbr, pr, tr oder .prompt_allow -reg deaktivieren. Alle diese Befehle steuern dieselbe Einstellung, und Sie können jede dieser Befehle verwenden, um jede vorherige Verwendung dieser Befehle außer Kraft zu setzen.
Sie können die Registeranzeige auch mit dem Befehl l-os deaktivieren. Diese Einstellung unterscheidet sich von den anderen vier Befehlen. Um zu steuern, welche Register und Merker angezeigt werden, verwenden Sie den Befehl rm (Register Mask).
StartAddress
Gibt die Adresse an, an der der Debugger die Ausführung startet. Wenn Sie StartAddress nicht verwenden, beginnt die Ausführung mit dem Befehl, auf den der Befehlszeiger zeigt. Weitere Informationen zur Syntax finden Sie unter Address and Address Range Syntax.
Zählen
Gibt die Anzahl der zuzulassenden Verzweigungen an. Bei jedem Auftreten einer Verzweigung werden die Anweisungsadresse und die Anweisung angezeigt. Wenn Sie "Anzahl" weglassen, lautet die Standardnummer 1.
Environment
Modi |
x86-basiert: Kernelmodus nur x64-basiert: Benutzermodus, Kernelmodus |
Targets |
Nur Livedebugging |
Plattformen |
x86-basiert (OriginalIntel Prozessorfamilie 6 und höher), x64-basiert |
Zusätzliche Informationen
Weitere Informationen zu verwandten Befehlen finden Sie unter Steuern des Ziels.
Hinweise
Der Befehl "tb " bewirkt, dass das Ziel mit der Ausführung beginnt. Diese Ausführung wird fortgesetzt, bis ein Verzweigungsbefehl erreicht ist.
Die Ausführung wird bei jedem Verzweigungsbefehl beendet, der ausgeführt werden soll. Dieses Beenden der Ausführung basiert immer auf dem Demontagecode , auch wenn sich der Debugger im Quellmodus befindet.
Verzweigungsanweisungen umfassen Aufrufe, Rückgaben, Sprünge, gezählte Schleifen und Während-Schleifen. Wenn der Debugger auf eine bedingungslose Verzweigung oder eine bedingte Verzweigung trifft, für die die Bedingung wahr ist, wird die Ausführung beendet. Wenn der Debugger auf eine bedingte Verzweigung trifft, deren Bedingung falsch ist, wird die Ausführung fortgesetzt.
Wenn die Ausführung beendet wird, werden die Adresse der Verzweigungsanweisung und alle zugehörigen Symbole angezeigt. Auf diese Informationen folgt ein Pfeil und dann die Adresse und Anweisungen des neuen Programmzählerspeicherorts.
Der Befehl "tb " funktioniert nur auf dem aktuellen Prozessor. Wenn Sie tb auf einem Multiprozessorsystem verwenden, wird die Ausführung beendet, wenn ein Verzweigungsbefehl erreicht wird oder wenn das Ereignis eines anderen Prozessors eintritt, je nachdem, was zuerst eintritt.
In der Regel ist die Verzweigungsablaufverfolgung aktiviert, nachdem der Prozessorsteuerungsblock (PRCB) initialisiert wurde. (Die PRCB wird früh im Startvorgang 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 Verzweigungsprotokollierung früher zu aktivieren. Verwenden Sie den Befehl .force_tb vorsichtig, da sie den Prozessorzustand beschädigen kann.