Condividi tramite


tb (traccia al ramo successivo)

Il comando tb esegue il programma finché non viene raggiunta un'istruzione di ramo.

tb [r] [= StartAddress] [Count] 

Parametri

r
Attiva e disattiva la visualizzazione di registri e flag. Per impostazione predefinita, vengono visualizzati i registri e i flag. È possibile disabilitare la visualizzazione del registro usando i comandi tbr, pr, tr o .prompt_allow -reg. Tutti questi comandi controllano la stessa impostazione ed è possibile usarli per eseguire l'override di qualsiasi uso precedente di questi comandi.

È anche possibile disabilitare la visualizzazione del registro usando il comando l-os. Questa impostazione è separata dagli altri quattro comandi. Per controllare quali registri e flag vengono visualizzati, usare il comando rm (Register Mask).

StartAddress
Specifica l'indirizzo in cui il debugger avvia l'esecuzione. Se non si usa StartAddress, l'esecuzione inizia con l'istruzione a cui punta il puntatore dell'istruzione. Per altre informazioni sulla sintassi, vedere Sintassi dell'intervallo di indirizzi e dell'intervallo di indirizzi.

Contare
Specifica il numero di rami da consentire. Ogni volta che viene rilevato un ramo, vengono visualizzati l'indirizzo dell'istruzione e l'istruzione. Se si omette Count, il numero predefinito è 1.

Ambiente

Modalità

Basato su x86: modalità kernel solo basata su x64: modalità utente, modalità kernel

Destinazioni

Solo debug in tempo reale

Piattaforme

Basato su x86 (famiglia di processori GenuineIntel 6 e versioni successive), basato su x64

Informazioni aggiuntive

Per altre informazioni sui comandi correlati, vedere Controllo della destinazione.

Osservazioni:

Il comando tb fa sì che la destinazione inizi l'esecuzione. Questa esecuzione continua fino a quando non viene raggiunto un comando di ramo.

L'esecuzione si arresta in qualsiasi comando di ramo che deve essere eseguito. Questo arresto dell'esecuzione è sempre basato sul codice disassembly , anche quando il debugger è in modalità di origine.

Le istruzioni del ramo includono chiamate, ritorni, salti, cicli contati e cicli while. Se il debugger rileva un ramo incondizionato o un ramo condizionale per il quale la condizione è true, l'esecuzione viene arrestata. Se il debugger rileva un ramo condizionale la cui condizione è false, l'esecuzione continua.

Quando l'esecuzione viene arrestata, vengono visualizzati l'indirizzo dell'istruzione del ramo ed eventuali simboli associati. Queste informazioni sono seguite da una freccia e quindi dall'indirizzo e dalle istruzioni del nuovo percorso del contatore del programma.

Il comando tb funziona solo sul processore corrente. Se si usa tb in un sistema multiprocessore, l'esecuzione viene arrestata quando viene raggiunto un comando di ramo o quando si verifica l'evento di un altro processore, a seconda del primo.

In genere, la traccia dei rami viene abilitata dopo l'inizializzazione del blocco di controllo del processore (PRCB). Il prcb viene inizializzato all'inizio del processo di avvio. Tuttavia, se è necessario usare il comando tb prima di questo punto, è possibile usare .force_tb (Forcibly Allow Branch Tracing) per abilitare la traccia dei rami in precedenza. Usare il comando .force_tb con cautela, perché può danneggiare lo stato del processore.