El rastreo de ramificaciones es una herramienta de depuración de programas informáticos o una técnica de análisis. Es un rastreo de instrucciones abreviado en el que solo se registran las instrucciones de ramificación exitosas. En IBM System/360, esto se implementó como parte de Program-Event Recording (PER) [1] , pero rara vez se utilizó en el nivel de programación de aplicaciones. Se utilizó hardware de Program Event Recording y, debido a la sobrecarga de esta herramienta, se eliminó de los sistemas MVS disponibles para el cliente .
El seguimiento de ramas también está disponible para los procesadores Intel Pentium 4 , Xeon y posteriores . [2] Hay comandos de procesador dedicados para habilitar el seguimiento de ramas y guardar las ramas ejecutadas en un área especial Intel Branch Trace Store (BTS) de la memoria residente. El Branch Trace Store también se puede configurar para que sea un búfer circular, de modo que se registren las últimas ramas ejecutadas. El seguimiento de ramas en los procesadores Intel que utilizan Branch Trace Store puede causar una ralentización de 40 veces el tiempo de ejecución de la aplicación. [3] Para Intel Core M y la quinta generación de procesadores Intel, se ha introducido Intel PT (Processor Trace), que tiene como objetivo proporcionar un seguimiento del flujo de control completo. Se dice que Intel PT solo tiene un impacto mínimo en la ejecución del programa (< 5%). [4]
Con la disponibilidad y la referencia a un listado del compilador del programa junto con un seguimiento de la bifurcación, se puede reconstruir la ruta completa de las instrucciones ejecutadas. Con mucho más esfuerzo, la ruta completa se puede reconstruir incluso con un volcado de memoria (que contiene el almacenamiento del programa) y un seguimiento de la bifurcación.
Se puede obtener un seguimiento más completo de todas las instrucciones (incluidas las instrucciones entre bifurcaciones) mediante el uso de un simulador de conjunto de instrucciones (si está disponible en algunas plataformas). Un seguimiento completo de las instrucciones puede proporcionar información adicional, como la dirección/longitud y el valor de las modificaciones de la memoria.