El rastreo de rama es una herramienta de depuración o técnica de análisis de un programa informático . Es un seguimiento de instrucción abreviado en el que solo se registran las instrucciones de bifurcación correctas . En IBM System / 360, esto se implementó como parte de la grabación de eventos de programa (PER) [1], pero rara vez se usaba en el nivel de programación de aplicaciones. Se utilizó hardware de grabación de eventos de programa y, debido a la sobrecarga de esta herramienta, se eliminó de los sistemas MVS disponibles para el cliente .
El rastreo de sucursales también está disponible para los procesadores Pentium 4 , Xeon y posteriores de Intel . [2] Hay comandos de procesador dedicados para habilitar el seguimiento de ramas y guardar las ramas ejecutadas en el área especial de Intel Branch Trace Store (BTS) de la memoria residente. El almacén de seguimiento de sucursales también se puede configurar para que sea un búfer circular, de modo que se registren las últimas sucursales ejecutadas. El seguimiento de sucursales en procesadores Intel que utilizan Branch Trace Store puede hacer que el tiempo de ejecución de la aplicación sea 40 veces más lento. [3] Para Intel Core My se ha introducido la quinta generación de procesadores Intel, Intel PT (Processor Trace), cuyo objetivo es proporcionar un seguimiento de flujo de control completo. Se dice que Intel PT tiene un impacto mínimo en la ejecución del programa (<5%). [4]
Usar
Con la disponibilidad y la referencia a una lista del compilador del programa junto con un seguimiento de rama, se puede reconstruir la ruta completa de las instrucciones ejecutadas. Con mucho más esfuerzo, la ruta completa incluso se puede reconstruir con un volcado de memoria (que contiene el almacenamiento del programa) y un seguimiento de rama.
Alternativas
Se puede obtener un seguimiento más completo de todas las instrucciones (incluidas las instrucciones entre ramas) mediante el uso de un simulador de conjunto de instrucciones (donde esté disponible en algunas plataformas). Un seguimiento de instrucción completo puede proporcionar información adicional como la dirección / longitud y el valor de las alteraciones de la memoria.
Ver también
Referencias
- ^ "Centro de conocimiento de IBM" . publib.boulder.ibm.com .[ enlace muerto permanente ]
- ^ IA-32 Intel® Architecture Software Developer's Manual ( ftp://download.intel.com/support/processors/celeron/sb/6.pdf [ enlace muerto permanente ] ), Volumen 3B: Guía de programación del sistema, Parte 2, Capítulo 18.4 Descripción general de la grabación de la última rama.
- ^ Explotación de avances de hardware para pruebas y depuración de software (NIER Track) , por Mary Lou Soffa, Kristen R. Walcott, Jason Mars, en Proceedings of ICSE , 2011. Consulte el capítulo 4.2 Branch Trace Store.
- ^ Manual del desarrollador de software de arquitecturas Intel® 64 e IA-32 , consulte el capítulo 35 Seguimiento del procesador Intel.
enlaces externos
- Presentar el nuevo rastreador de rama 'perf branch' de Akihiro Nagai.