tb (Seguimiento a la rama siguiente)
El comando tb ejecuta el programa hasta que se alcanza una instrucción de rama.
tb [r] [= StartAddress] [Count]
Parámetros
r
Activa y desactiva la visualización de registros y marcas. De forma predeterminada, se muestran los registros y las marcas. Puede deshabilitar la visualización de registros mediante los comandos tbr, pr, tr o .prompt_allow -reg. Todos estos comandos controlan la misma configuración y puede usar cualquiera de ellos para invalidar cualquier uso anterior de estos comandos.
También puede desactivar la visualización de registros utilizando el comando l-os. Esta configuración es independiente de los otros cuatro comandos. Para controlar qué registros y marcas se muestran, use el comando rm (Máscara de registro).
StartAddress
Especifica la dirección en la que el depurador inicia la ejecución. Si no usa StartAddress, la ejecución comienza en la instrucción a la que apunta el puntero de instrucción. Para obtener más información sobre la sintaxis, consulte Direcciones y sintaxis de intervalo de direcciones.
Contar
Especifica el número de ramas que se van a permitir. Cada vez que se encuentra una rama, se muestra la dirección de instrucción y la instrucción. Si omite Count, el número predeterminado es 1.
Entorno
Modos |
Basado en x86: modo kernel basado solo en x64: modo usuario, modo kernel |
Destinos |
Solo depuración en vivo |
Platforms |
Basado en x86 (familia de procesadores GenuineIntel 6 y versiones posteriores), basado en x64 |
Información adicional
Para obtener más información sobre los comandos relacionados, vea Controlar el destino.
Comentarios
El comando tb hace que el destino empiece a ejecutarse. Esta ejecución continúa hasta que se alcanza un comando de rama.
La ejecución se detiene en cualquier comando de rama que se va a tomar. Esta detención de la ejecución siempre se basa en el código de desensamblaje, incluso cuando el depurador está en modo de origen.
Las instrucciones de rama incluyen llamadas, devoluciones, saltos, bucles contados y bucles while. Si el depurador encuentra una rama incondicional o una rama condicional para la que la condición es verdadera, la ejecución se detiene. Si el depurador encuentra una rama condicional cuya condición es false, la ejecución continúa.
Cuando se detiene la ejecución, se muestra la dirección de la instrucción de rama y los símbolos asociados. Esta información va seguida de una flecha y, a continuación, la dirección e instrucciones de la nueva ubicación del contador del programa.
El comando tb solo funciona en el procesador actual. Si usa tb en un sistema de varios procesadores, la ejecución se detiene cuando se alcanza un comando de rama o cuando se produce el evento de otro procesador, lo que ocurra primero.
Normalmente, el seguimiento de ramas se habilita después de inicializar el bloque de control del procesador (PRCB). (El PRCB se inicializa al principio del proceso de arranque). Sin embargo, si tiene que usar el comando tb antes de este punto, puede usar .force_tb (Permitir seguimiento de rama forzada) para habilitar el seguimiento de ramas anteriormente. Use el comando .force_tb con precaución, ya que puede dañar el estado del procesador.