Diferencia entre revisiones de «Depurador»

De Wikipedia, la enciclopedia libre
Contenido eliminado Contenido añadido
ychccbcgtdbchbdf ycbetfhdtfcydhcufdbhd464764478743546vghftchrcyfrcvugrcvudrd yfrdhdfdgdred DFFFFFFFufyfnfttnrdhrhddhdg dydhdtdhegtdsgvtegeregdvetfrjdyufjguh
Rαge (discusión · contribs.)
m Revertidos los cambios de 77.85.73.168 (disc.) a la última edición de Luckas-bot
Línea 30: Línea 30:


Un depurador también puede usarse para realizar [[ingeniería inversa]] o evitar [[Protección de copia|protecciones de copia]]. Mediante el uso del depurador se puede conocer el funcionamiento interno del programa examinado, ayudando al proceso de ingeniería inversa o permitiendo desarrollar técnicas para evadir las restricciones impuestas por el programa.
Un depurador también puede usarse para realizar [[ingeniería inversa]] o evitar [[Protección de copia|protecciones de copia]]. Mediante el uso del depurador se puede conocer el funcionamiento interno del programa examinado, ayudando al proceso de ingeniería inversa o permitiendo desarrollar técnicas para evadir las restricciones impuestas por el programa.
[[Media:Ejemplo.ogg]]


== Efectos secundarios ==
== Efectos secundarios ==

Revisión del 08:11 5 abr 2010

Un depurador (en inglés, debugger), es un programa que permite depurar o limpiar los errores de otro programa informático.

Uso

Al iniciarse la depuración, el depurador lanza el programa a depurar. Éste se ejecuta normalmente hasta que el depurador detiene su ejecución, permitiendo al usuario examinar la situación.

El depurador permite detener el programa en:

  • Un punto determinado mediante un punto de ruptura.
  • Un punto determinado bajo ciertas condiciones mediante un punto de ruptura condicional.
  • Un momento determinado cuando se cumplan ciertas condiciones.
  • Un momento determinado a petición del usuario.

Durante esa interrupción, el usuario puede:

  • Examinar y modificar la memoria y las variables del programa.
  • Examinar el contenido de los registros del procesador.
  • Examinar la pila de llamadas que han desembocado en la situación actual.
  • Cambiar el punto de ejecución, de manera que el programa continúe su ejecución en un punto diferente al punto en el que fue detenido.
  • Ejecutar instrucción a instrucción.
  • Ejecutar partes determinadas del código, como el interior de una función, o el resto de código antes de salir de una función.

El depurador depende de la arquitectura y sistema en el que se ejecute, por lo que sus funcionalidades cambian de un sistema a otro. Aquí se han mostrado las más comunes.

Información de depuración

Para poder aprovechar todas las posibilidades de depuración es necesario que, al compilar el programa a depurar, se indique al compilador que debe incluir instrucciones e información extra para la depuración del código. Dicha información extra consiste básicamente en la correspondencia entre las instrucciones del código ejecutable y las instrucciones del código fuente que las originan, así como información sobre nombres de variables y funciones.

Aún si no se incluye esta información de depuración, sigue siendo posible monitorizar la ejecución del programa. Sin embargo, resultará más difícil y compleja debido a esa falta de información del contexto en el que se ejecuta el programa.

Otros usos

Un depurador también puede usarse para realizar ingeniería inversa o evitar protecciones de copia. Mediante el uso del depurador se puede conocer el funcionamiento interno del programa examinado, ayudando al proceso de ingeniería inversa o permitiendo desarrollar técnicas para evadir las restricciones impuestas por el programa.

Efectos secundarios

Es importante notar que un programa que está siendo depurado puede presentar un comportamiento diferente a si se ejecuta en solitario debido a que el depurador cambia ligeramente los tiempos internos del programa. Estos cambios en los tiempos de ejecución afectan especialmente a sistemas complejos multihebra o sistemas distribuidos.

Ejemplos de depuradores

Véase también