Articulo de referencia

Rastreo de rama

El rastreo de bifurcaciones es una herramienta o técnica de análisis para la depuración de programas informáticos . Se trata de un rastreo de instrucciones abreviado en el que s...

El rastreo de bifurcaciones es una herramienta o técnica de análisis para la depuración de programas informáticos . Se trata de un rastreo de instrucciones abreviado en el que solo se registran las instrucciones de bifurcación exitosas. En IBM System/360, esta herramienta se implementó como parte del Registro de Eventos de Programa (PER) [ 1 ] , pero rara vez se utilizó a nivel de programación de aplicaciones. Se utilizaba hardware de Registro de Eventos de Programa y, debido a la sobrecarga que suponía, se eliminó de los sistemas MVS disponibles para los clientes .

El rastreo de ramas también está disponible para procesadores Intel Pentium 4 , Xeon y posteriores . [ 2 ] Existen comandos de procesador dedicados para habilitar el rastreo de ramas y guardar las ramas ejecutadas en un área especial de memoria residente denominada Intel Branch Trace Store (BTS). El Branch Trace Store también se puede configurar como un búfer circular, de modo que se registren las últimas ramas ejecutadas. El rastreo de ramas en procesadores Intel que utilizan el Branch Trace Store puede provocar una ralentización de hasta 40 veces en el tiempo de ejecución de la aplicación. [ 3 ] Para los procesadores Intel Core M y la quinta generación de procesadores Intel, se ha introducido Intel PT (Processor Trace), cuyo objetivo es proporcionar un rastreo completo del flujo de control. Se afirma que Intel PT tiene un impacto mínimo en la ejecución del programa (< 5%). [ 4 ]

Usar

Con la disponibilidad y referencia a un listado del compilador del programa junto con un rastreo de bifurcación, se puede reconstruir la ruta completa de las instrucciones ejecutadas. Con mucho más esfuerzo, incluso se puede reconstruir la ruta completa con un volcado de memoria (que contiene el almacenamiento del programa) y un rastreo de bifurcación.

Alternativas

Se puede obtener un registro más completo de todas las instrucciones (incluidas las instrucciones entre bifurcaciones) mediante el uso de un simulador de conjunto de instrucciones (disponible en algunas plataformas). Un registro completo de instrucciones puede proporcionar información adicional, como la dirección, la longitud y el valor de las modificaciones de memoria.

Véase también

Referencias

  1. "Centro de conocimiento de IBM" . publib.boulder.ibm.com .
  2. Manual del desarrollador de software de la arquitectura Intel® IA-32 ( ftp://download.intel.com/support/processors/celeron/sb/6.pdf ), 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.
  3. Aprovechamiento de los avances de hardware para las pruebas y depuración de software (NIER Track) , por Mary Lou Soffa, Kristen R. Walcott, Jason Mars, en Actas de ICSE , 2011. Véase el capítulo 4.2 Almacenamiento de trazas de rama.
  4. Manual del desarrollador de software para arquitecturas Intel® 64 e IA-32 , consulte el capítulo 35, Seguimiento del procesador Intel.
  • Presentamos el nuevo rastreador de ramas 'perf branch' de Akihiro Nagai.