stringtranslate.com

Rastro de rama

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]

Usar

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.

Alternativas

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.

Véase también

Referencias

  1. ^ "Centro de conocimiento de IBM". publib.boulder.ibm.com .[ enlace muerto permanente ]
  2. ^ Manual del desarrollador de software de arquitectura Intel® IA-32 (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.
  3. ^ 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 Actas de ICSE , 2011. Consulte el Capítulo 4.2, Almacén de seguimiento de ramas.
  4. ^ Manual del desarrollador de software de arquitecturas Intel® 64 e IA-32 , consulte el Capítulo 35 Intel Processor Trace.

Enlaces externos