Вы находитесь на странице: 1из 2

Un depurador (en ingls, debugger), es un programa usado para probar y

depurar (eliminar) los errores de otros programas (el programa "objetivo").


El cdigo a ser examinado puede alternativamente estar corriendo en un
simulador de conjunto de instrucciones (ISS), una tcnica que permite gran
potencia en su capacidad de detenerse cuando son encontradas condiciones
especficas pero ser tpicamente algo ms lento que ejecutando el cdigo
directamente en el apropiado (o el mismo) procesador. Algunos depuradores
ofrecen dos modos de operacin - la simulacin parcial o completa, para
limitar este impacto.

Si es un depurador de nivel de fuente o depurador simblico, comnmente


ahora visto en entornos de desarrollo integrados, cuando el programa "se
estrella" o alcanza una condicin predefinida, la depuracin tpicamente
muestra la posicin en el cdigo original. Si es un depurador de bajo nivel o
un depurador de lenguaje de mquina, muestra la lnea en el fuente
desensamblado (a menos que tambin tenga acceso en lnea al cdigo
fuente original y pueda exhibir la seccin apropiada del cdigo del
ensamblador o del compilador). Un "estrellamiento" sucede cuando el
programa no puede continuar normalmente debido a un error de
programacin. Por ejemplo, el programa pudo haber intentado usar una
instruccin no disponible en la versin actual del CPU o haber intentado
tener acceso a memoria protegida o no disponible.

Tpicamente, los depuradores tambin ofrecen funciones ms sofisticadas


tales como correr un programa paso a paso (un paso o animacin del
programa), parar el programa (breaking), es decir, pausar el programa para
examinar el estado actual en cierto evento o instruccin especificada por
medio de un breakpoint, y el seguimiento de valores de algunas variables.
Algunos depuradores tienen la capacidad de modificar el estado del
programa mientras que est corriendo, en vez de simplemente observarlo.
Tambin es posible continuar la ejecucin en una posicin diferente en el
programa bypaseando un estrellamiento o error lgico.

La importancia de un buen depurador no puede ser exagerada. De hecho, la


existencia y la calidad de tal herramienta para un lenguaje y una plataforma
dadas a menudo puede ser el factor de decisin en su uso, incluso si otro
lenguaje/plataforma es ms adecuado para la tarea.[cita requerida] La
ausencia de un depurador, una vez estando acostumbrado a usar uno, se ha
dicho que "hace que usted se sienta como un hombre ciego en un cuarto
oscuro buscando un gato negro que no est all".1 Sin embargo, el software
puede (y a menudo) se comporta diferentemente corriendo bajo un
depurador que normalmente, debido a los cambios inevitables que la
presencia de un depurador har a la temporizacin interna de un programa
de software. Como resultado, incluso con una buena herramienta de
depuracin, es a menudo muy difcil rastrear problemas de tiempo de
corrida en complejos sistemas distribuidos con mltiples hilos.

La misma funcionalidad que hace a un depurador til para eliminar errores


permite ser usado como herramienta de craqueo de software para evadir la
proteccin anticopia, la gestin digital de derechos, y otras caractersticas
de proteccin de software. A menudo tambin lo hace til como herramienta
general de verificacin de pruebas, cobertura de fallas, o analizador de
desempeo, especialmente si son mostradas las longitudes de trayectoria
de instruccin.

La mayora de los motores de depuracin actuales, tales como gdb y dbx


proporcionan interfaces basadas en lnea de comandos. Los frontales de
depuracin son extensiones populares a los motores de depuracin, que
proporcionan integracin al IDE, animacin del programa, y caractersticas
de visualizacin. Algunos depuradores de los primeros mainframes tales
como el Oliver y el SIMON proporcionaron esta misma funcionalidad para el
IBM System/360 y posteriores sistemas operativos, hasta los aos 1970

Вам также может понравиться