lunes, 26 de octubre de 2009
Guía básica del depurador
guia basica del depurador:
El depurador de Visual Studio es una herramienta eficaz que permite observar el comportamiento del programa en tiempo de ejecución y encontrar errores lógicos. El depurador trabaja con todos los lenguajes de programación de Visual Studio y sus bibliotecas asociadas. Con el depurador se puede interrumpir (o suspender) la ejecución del programa para examinar el código, evaluar y modificar variables del programa, ver registros, mostrar las instrucciones creadas a partir del código fuente y observar el espacio que ocupa la aplicación en memoria. Con Editar y continuar, puede realizar cambios en el código durante la depuración y después seguir con la ejecución.
El depurador de Visual Studio proporciona un menú Depurar que ofrece acceso a las herramientas del depurador. Las ventanas y cuadros de diálogo del depurador muestran información sobre el programa y permiten escribir información adicional. Puede obtener Ayuda en cualquier ventana o cuadro de diálogo presionando F1.
En esta sección
Control de ejecución
Explica cómo utilizar el depurador para controlar la ejecución de una aplicación. Con el depurador, podrá iniciar (o continuar) la ejecución, interrumpirla o detenerla, recorrer la aplicación paso a paso, ejecutar la aplicación hasta un punto determinado y establecer el punto de ejecución.
Cómo: Restaurar los comandos ocultos del depurador
Describe cómo hacer que estén visibles los comandos del depurador que la configuración predeterminada del IDE ha ocultado.
Trabajar con procesos y subprocesos
Describe cómo asociar a procesos y subprocesos, y controlar su ejecución.
Depuración Just-In-Time
Explica la depuración Just-In-Time, que inicia el depurador automáticamente cuando se bloquea un programa que se ejecuta fuera de Visual Studio.
Iniciar el depurador automáticamente
Proporciona instrucciones para configurar una aplicación de modo que inicie Visual Studio cuando la aplicación se inicie desde Windows. Visual Studio cargará la aplicación, y la dejará preparada para la depuración, pero la depuración en sí no comenzará hasta que se especifique un comando de ejecución. Esta forma de iniciar el depurador resulta útil para depurar servicios y servidores COM fuera de proceso.
Tutorial: Depurar en tiempo de diseño
Muestra cómo utilizar la ventana Inmediato de Visual Studio para ejecutar una función o subrutina mientras la aplicación no se está ejecutando.
Volcados
Describe los archivos de volcado, e incluye instrucciones para guardarlos y abrirlos. Los archivos de volcado contienen una instantánea del estado de su programa en algún momento determinado, normalmente después de un bloqueo. Si prueba el programa en un equipo que no tiene instalados los archivos de código fuente o PDB, puede guardar un archivo de volcado cuando se produzca un bloqueo y utilizarlo para depurar el bloqueo en el equipo de generación que contiene los archivos de código fuente y PDB.
Puntos de interrupción y puntos de seguimiento
Explica qué son los puntos de interrupción y los puntos de seguimiento, y cómo se utilizan.
Ver datos en el depurador
Ofrece información acerca de diversas herramientas de depuración que permiten inspeccionar y modificar el estado de un programa. La mayoría de estas herramientas sólo funcionan en el modo de interrupción.
Expresiones en el depurador
Ofrece vínculos a temas que describen la sintaxis específica del lenguaje que se puede usar cuando se escriben en el depurador expresiones de C++, C#, C++, Visual Basic, J# y secuencia de comandos.
Control de excepciones
Describe las excepciones, el modo en que el depurador reacciona ante ellas y cómo cambiar esta reacción, cómo averiguar dónde se ha producido la excepción y ver el contenido de las variables, las limitaciones para las excepciones sin tratamiento en el código administrado, y la solución de las excepciones en el código nativo (C++).
Editar y continuar
Describe Editar y continuar, una herramienta que permite cambiar el código fuente mientras el programa se encuentra en modo de interrupción y aplicar los cambios sin tener que terminar la sesión de depuración y generar de nuevo el programa; e incluye instrucciones para habilitar o deshabilitar esta función.
depuradores

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
GNU Debugger (gdb)
SoftICE
OllyDbg
Trw2000
Ida Pro
Ingeniería Inversa/Depuradores
Los depuradores son, con la posible excepción de un descompilador potente, el mejor amigo de un ingeniero inverso. Un depurador permite al usuario ejecutar el programa paso a paso, y examinar varios valores y acciones.
Los depuradores avanzados a menudo contienen por lo menos un desensamblados rudimentario, características de reensamblado o edición hexadecimal. Los depuradores generalmente permiten al usuario colocar puntos de ruptura en instrucciones, llamadas a fundón e incluso lugares de la memoria.
Un punto de ruptura (breakpoint) es una instrucción al depurador que permite parar la ejecución del programa cando cierta condición se cumpla. Por ejemplo, cuando un programa accede a cierta variable, o llama a cierta función de la API, el depurador puede parar la ejecución del programa.
Depuradores Windows
OllyDbg
OllyDbg es un potente depurador Windows con un motor de ensamblado y desensamblado integrado. Tiene numerosas otras características incluyendo un precio de 0$. Muy útil para parcheado, desensamblado y depuración.
SoftICE
Un estándar de facto para depuración Windows. SoftICE puede ser usado para local kernel debugging, que es una característica muy extraña, y muy valiosa. Softice desapareció del mercado en abril del 2006 .
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
GNU Debugger (gdb)
SoftICE
OllyDbg
Trw2000
Ida Pro
Ingeniería Inversa/Depuradores
Los depuradores son, con la posible excepción de un descompilador potente, el mejor amigo de un ingeniero inverso. Un depurador permite al usuario ejecutar el programa paso a paso, y examinar varios valores y acciones.
Los depuradores avanzados a menudo contienen por lo menos un desensamblados rudimentario, características de reensamblado o edición hexadecimal. Los depuradores generalmente permiten al usuario colocar puntos de ruptura en instrucciones, llamadas a fundón e incluso lugares de la memoria.
Un punto de ruptura (breakpoint) es una instrucción al depurador que permite parar la ejecución del programa cando cierta condición se cumpla. Por ejemplo, cuando un programa accede a cierta variable, o llama a cierta función de la API, el depurador puede parar la ejecución del programa.
Depuradores Windows
OllyDbg
OllyDbg es un potente depurador Windows con un motor de ensamblado y desensamblado integrado. Tiene numerosas otras características incluyendo un precio de 0$. Muy útil para parcheado, desensamblado y depuración.
SoftICE
Un estándar de facto para depuración Windows. SoftICE puede ser usado para local kernel debugging, que es una característica muy extraña, y muy valiosa. Softice desapareció del mercado en abril del 2006 .
Suscribirse a:
Entradas (Atom)