Breakpoint


En el desarrollo de software , un punto de interrupción es un lugar de detención o pausa intencional en un programa , implementado con fines de depuración . A veces también se denomina simplemente pausa .

De manera más general, un punto de ruptura es un medio de adquirir conocimientos sobre un programa durante su ejecución. Durante la interrupción , el programador inspecciona el entorno de prueba ( registros de propósito general , memoria , registros, archivos , etc.) para averiguar si el programa está funcionando como se esperaba. En la práctica, un punto de interrupción consta de una o más condiciones que determinan cuándo debe interrumpirse la ejecución de un programa.

Los puntos de interrupción fueron inventados para ENIAC , una de las primeras computadoras digitales, por la programadora Betty Holberton . [1] En el diseño inicial de ENIAC, el flujo del programa se estableció conectando cables de una unidad a otra. Para hacer que el programa se detenga en un punto determinado, se quitó un cable, llamado punto de interrupción . [2]

Las primeras computadoras mainframe, como IBM / 360 , tenían conmutadores / diales de consola que permitían puntos de interrupción en direcciones de almacenamiento de instrucciones específicas y proporcionaban una operación de "ciclo único", lo que permitía observar el contenido de los registros y la memoria directamente en las luces de la consola. La llegada de la multitarea limitó el uso de esta opción ya que toda la máquina se detuvo.

Los programadores han utilizado parches de código de máquina para implementar puntos de interrupción destructivos únicos para causar un volcado de núcleo desde los primeros días de las computadoras. El volcado de memoria proporcionó el estado de los registros y la memoria en el momento exacto del "bloqueo" deliberado.

El advenimiento de las consolas de teletipo en la década de 1960 permitió capacidades de depuración de línea de comando más interactivas , pero no fue hasta principios de la década de 1970 y la llegada de monitores de video ubicuos conectados a mainframes que la depuración de pantalla completa totalmente interactiva en entornos multitarea se convirtió en una realidad. Esto también permitió la ejecución del programa paso a paso en una verdadera forma de animación del programa con alteraciones opcionales de registro y memoria visualizadas simultáneamente. Inicialmente, este tipo de animación estaba en el nivel de código de máquina desensamblado o descompilado , pero luego avanzó a la animación de nivel de fuente HLL .


La interfaz de depuración de Eclipse con un programa suspendido en un punto de interrupción. Se pueden ver los paneles con seguimiento de pila (arriba a la izquierda) y variables observadas (arriba a la derecha).