tb (Rastrear para a próxima ramificação)
O comando tb executa o programa até que uma instrução de ramificação seja alcançada.
tb [r] [= StartAddress] [Count]
Parâmetros
r
Ativa e desativa a exibição de registros e sinalizadores. Por padrão, são exibidos os registradores e sinalizadores. Você pode desativar a exibição do registro usando os comandos tbr, pr, tr ou .prompt_allow -reg. Todos esses comandos controlam a mesma configuração e você pode usar qualquer um deles para substituir qualquer uso anterior desses comandos.
Você também pode desativar a exibição do registro com o comando l-os. Essa configuração é separada dos outros quatro comandos. Para controlar quais registradores e sinalizadores são exibidos, use o comando rm (Register Mask).
Endereço inicial
Especifica o endereço em que o depurador inicia a execução. Se você não usar StartAddress, a execução terá início na instrução para a qual o ponteiro de instrução está apontando. Para obter mais informações sobre a sintaxe, consulte Endereço e sintaxe de intervalo de endereços.
Contar
Especifica o número de ramificações a serem permitidas. Toda vez que uma ramificação é encontrada, o endereço da instrução e a instrução são exibidos. Se você omitir Count, o número padrão será 1.
Ambiente
Modos |
Baseado em x86: somente no modo kernel Baseado em x64: Modo de usuário, modo kernel |
Destinos |
Somente depuração ao vivo |
Plataformas |
Baseado em x86 (família de processadores GenuineIntel 6 e posterior), baseado em x64 |
Informações Adicionais
Para obter mais informações sobre comandos relacionados, consulte Controlando o destino.
Comentários
O comando tb faz com que o destino comece a ser executado. Essa execução continua até que um comando de ramificação seja alcançado.
A execução é interrompida em qualquer comando de ramificação que deva ser executado. Essa interrupção da execução é sempre baseada no código de desmontagem , mesmo quando o depurador está no modo de origem.
As instruções de ramificação incluem chamadas, retornos, saltos, loops contados e loops while. Se o depurador encontrar uma ramificação incondicional ou uma ramificação condicional para a qual a condição é verdadeira, a execução será interrompida. Se o depurador encontrar uma ramificação condicional cuja condição é falsa, a execução continuará.
Quando a execução é interrompida, o endereço da instrução de ramificação e todos os símbolos associados são exibidos. Essas informações são seguidas por uma seta e, em seguida, o endereço e as instruções do novo local do contador do programa.
O comando tb funciona apenas no processador atual. Se você usar tb em um sistema multiprocessador, a execução será interrompida quando um comando de ramificação for alcançado ou quando ocorrer um evento de outro processador, o que ocorrer primeiro.
Normalmente, o rastreamento de ramificação é habilitado após a inicialização do PRCB (bloco de controle do processador). (O PRCB é inicializado no início do processo de inicialização.) No entanto, se você tiver que usar o comando tb antes desse ponto, poderá usar .force_tb (Forçar Permitir Rastreamento de Ramificação) para habilitar o rastreamento de ramificação mais cedo. Use o comando .force_tb com cuidado, pois ele pode corromper o estado do processador.