Você está na página 1de 5

Depuracin de programas

Qu hace un depurador y cmo se utiliza?


Estas preguntas se contestan mucho mejor a travs de un ejemplo, pero para dar una respuesta
rpida, un programa depurador nos permite monitorizar y controlar un programa durante su
ejecucin. Qu significa esto? Bueno, utilizando el depurador (debugger) podemos decirle al
programa que se ejecute hasta una posicin de memoria concreta, y que nos muestre en ese
momento el contenido de los registros del microprocesador y de la memoria permitiendonos por
tanto analizar cualquier variable que estemos empleando.
Hay cuatro pasos bsicos en la depuracin de un programa:
1.- Descubrir que hay un error. Hay errores? No siempre es obvio saber que tienes un bug.
2.- Aislar el error. Donde est? Hay que localizar las partes del cdigo que estn causando el
fallo del programa.
3.- Busqueda del error. Qu est mal en el fragmento de cdigo aislado?
4.- Correccin del error. Como debemos reescribir el fragmento de cdigo errneo?
El depurador nos da las herramientas necesarioas para dar estos pasos.

Turbo Debugger
Turbo Debugger es una utilidad de depuracin con un entorno de ventanas que se puede manejar
con el ratn. Para arrancar Turbo Debugger (TD) teclea en la lnea de comandos DOS:

td [progname[.exe]]

Vistazo general
La ventana principal de TD muestra una barra de men estandar en la parte superior. En este
menu podemos encontrar los campos File, Edit, View, Run, Breakpoint, Data, Options, Windows,
Help. La barra de estado en la parte inferior de la ventana de TD contiene informacin muy
interesante acerca del contexto actual. Por ejemplo, muestra a menudo la lista de todas las
funciones asociadas con las teclas de funcin F1 a F10. Por ejemplo F9 es el comando "Run". Lo
que significan esas funciones estar disponible en el contexto actual.

Ventanas
Dentro de la ventana principal de TD tenemos una variedad de sub-ventanas. En cualquier
momento pueden estar activas varias de ellas. Casda ventana activa es numerada (1, 2, 3, etc.) y
ese nmero se muestra en la esquina superior derecha de la ventana. Ms abajo describiremos
estas ventanas y comentaremos como se manejan. An cuando puede haber varias ventanas, hay
una que estarn encima de las dems. Esta ventana tendr un pequeo rectngulo verde en la
esquina superior izquierda. Se puede cerrar la ventana pulsando con el ratn en ese rectngulol La
tecla de funcin F6 (Next) permite modificar la ventana que est encima de las dems.

Ayuda Online
Ya hemos mencionado el menu Help (desplegable). Pero hay ayudas ms inmediatas o sensibles al
contexto:
Barra de estado
La barra de estado muestra habitualmente la lista de las funciones asociadad con las 10 teclas
de funcin, Pero si mantienes pulsada la tecla Alt, mostrar las funciones asociadas con la
combinacin Alt + las teclas de funcin. Por ejemplo, Alt-F5 es la funcin de "User screen" o
pantalla de usuario. Prubala! Es muy til si necesitas ver cualquier salida del cdigo que se
depura. Para volver a la pantalla de TD pulsa cualquier tecla.
Si mantienes pulsada la tecla Ctrl mostrar las funciones asociadas a la combinacin Ctrl+
teclas de funcin. Por ejemplo: Ctrl-I nos permite inspeccionar la variable que es apuntada por el
cursor
Tecla F1
Esta tecla abre una ventana de ayuda que contiene informacin acerca de la ventana que est
encima de las dems, con una serie de puntos para elegir.
Speed menu
Puede ser invocado con una pulsacin del botn derecho del ratn. En la mayora de las
ventanas mostrar una lista de las opciones disponibles para esa ventana.

Algunos mens desplegables


View
Los tipos de ventanas disponibles son listados en el men View
Windows

Esta opcin nos permite manejar las ventanas. Este men est dividido en dos mitades: la
superior contiene comandos como Zoom (F5), Next (F6), Next Pane (Tab), etc. La mitad inferior es
una lista de las ventanas activas.
Run
Las ventanas son para analizar el cdigo y sus variables. Pero para la accin, necesitamos
ejecutar el cdigo. El menu Run proporciona varios modos de ejecucin:
Run (F9), hace correr el programa hasta que este termina (o hasta que se alcance un punto de
ruptura).
Trace Into (F7), ejecuta un paso sencillo o una instruccin cada vez. Lo que se entiende por un
paso sencillo depender del contenido de la ventana que est encima de las dems. Si es una
ventana Module o se pulsa F7 se ejecuta una lnea del cdigo fuente. Si es una ventana CPU o se
utiliza la combinacin Alt-F7, se ejecuta una instruccin mquina sencilla. Si la linea de cdigo
contiene una llamada a una funcin, TD depura la funcin.
Step Over (F8). Esta opcin es como la anterior excepto que cuando el puntero de instruccin
apunta a una instruccin call se ejecuta la funcin entera y el cursor se coloca en la siguiente linea
de cdigo.
Animate. Similar a Run hasta que termina el cdigo, excepto por que despus de cada
instruccin muestra el contenido de los registros y variables para ver qu es lo que est pasando.
Restart (Ctrl-F2). Mueve el puntero de instruccin a la primera instruccin del programa.

Ventanas de TD
La ventana Regs
La ventana Regs muestra el contenido de todos los registros del procesador as como los flags
de la CPU. Es posible visualizarlos como registros de 16 bit o de 32 bits. Varias opciones son
accesibles a travs del men local SpeedMenu (botn derecho del ratn o Alt-F10). Segn se va
ejecutando el programa (paso a paso) los cambios en registros y flags se van resaltando en la
ventana.
La ventana Dump
Muestra el contenido de un rea de la memoria en formato hexadecimal. La parte de la
izquierda muestra la direccin de comienzo de la linea (p.ej. DS:0000). En el formato por defecto
(formato byte) se muestran 8 byte por linea, y a la derecha de esos 8 bytes estn sus
representaciones en cdigo ASCII extendido. Se puede usar el comando Goto del men local para
examinar las variables que deseemos.
La ventana Module
La ventana muestra el cdigo fuente si hay informacin de depuracin dentro del ejecutable. La
tecla F8 avanza un paso en las lineas de cdigo. La tecla F7 tambin avanza en el cdigo solo que
es capaz de depurar las llamadas a las subrutinas. La tecla F2 activa un punto de ruptura

(breakpoint) en la linea apuntada por el cursor.


La ventana CPU
La ventana CPU se combina las ventanas anteriores en una nica ventana. Es menos potente y
un poco ms dificil de usar que las tres ventanas por separado.

Puntos de ruptura
Los puntos de ruptura sirven para tomar unas acciones determinadas cuando se alcanza un
punto concreto en la ejecucin del cdigo. El usuario debe definir para un punto de ruptura tres
variables:
La direccin donde queremos parar el cdigo.
La condicin que activa el punto de ruptura
La accin que queremos realizar cuando se alcanza el punto de ruptura
El tipo ms simple de punto de ruptura es aquel que (a) est asociado con una instruccin
especfica en el programa, y que (b) est siempre activada y (c) que para la ejecucin del
programa. Estos se llaman puntos de ruptura simples o sencillos. Es el tipo asumido por defecto
por TD, y debera ser suficiente para nuestros propsitos. Utilizando estos, podemos ejecutar el
programa a toda velocidad hasta alcanzar la instruccin especificada y examinar entonces el
estado de la memoria y de la CPU.
Cmo se pone un punto de ruptura sencillo? Bueno, slo necesitamos especificar una instruccin
del programa. La forma ms sencialla es usar la ventana Module o desde la subventana de cdigo
de la ventana CPU. Primero situaremos el cursor en la lnea de cdigo donde deseamos poner el
punto de ruptura y pulsaremos F2 que pondr un punto de ruptura o lo quitar si estaba puesto.

Você também pode gostar