Manual Turbo Debbuger

6
 Depuración de programas ¿Qué hace un depurador y cómo se utiliza? Estas preguntas se contestan mucho mejor a través de un ejemplo, pero para dar una respuesta rápida, un programa depurador nos permite monitorizar y controlar un programa durante su ejecución. ¿Qué signifca esto? ueno, utilizando el depurador !debugger " podemos decirle al programa #ue se ejecute hasta una posición de memoria concreta, y #ue nos muestre en ese momento el contenido de los registros del microprocesador y de la memoria permitiendonos por tanto analizar cual#uier varia$le #ue estemos empleando. %ay cuatro pasos $ásicos en la depuración de un programa& '.( Descubrir que hay un error . ¿%ay errores? )o siempre es o$vio sa$er #ue tienes un $ug. *.( Aislar el error. ¿+onde está? %ay #ue localizar las partes del código #ue están causando el allo del programa. -.( Busqueda del error. ¿Qué está mal en el ragmento de código aislado? .( Corrección del error. ¿/omo de$emos reescri$ir el ragmento de código erróneo? El depurador nos da las herramientas necesarioas para dar estos pasos. Turbo Debugger  0 ur$o +e$ugger es una util idad de depu ración con un entorno de v entanas #ue se puede manejar con el ratón. 1ara arrancar 0ur$o +e$ugger !0+" teclea en la l2nea de comandos +34& td [  progname[.exe]]

description

Ensamblador

Transcript of Manual Turbo Debbuger

7/18/2019 Manual Turbo Debbuger

http://slidepdf.com/reader/full/manual-turbo-debbuger 1/5

Depuración de programas¿Qué hace un depurador y cómo se utiliza?

Estas preguntas se contestan mucho mejor a través de un ejemplo, pero para dar una respuesta

rápida, un programa depurador nos permite monitorizar y controlar un programa durante su

ejecución. ¿Qué signifca esto? ueno, utilizando el depurador !debugger " podemos decirle alprograma #ue se ejecute hasta una posición de memoria concreta, y #ue nos muestre en ese

momento el contenido de los registros del microprocesador y de la memoria permitiendonos por

tanto analizar cual#uier varia$le #ue estemos empleando.

%ay cuatro pasos $ásicos en la depuración de un programa&

'.( Descubrir que hay un error. ¿%ay errores? )o siempre es o$vio sa$er #ue tienes un $ug.

*.( Aislar el error. ¿+onde está? %ay #ue localizar las partes del código #ue están causando el

allo del programa.

-.( Busqueda del error. ¿Qué está mal en el ragmento de código aislado?

.( Corrección del error. ¿/omo de$emos reescri$ir el ragmento de código erróneo?

El depurador nos da las herramientas necesarioas para dar estos pasos.

Turbo Debugger 0ur$o +e$ugger es una utilidad de depuración con un entorno de ventanas #ue se puede manejar

con el ratón. 1ara arrancar 0ur$o +e$ugger !0+" teclea en la l2nea de comandos +34&

td [ progname[.exe]]

7/18/2019 Manual Turbo Debbuger

http://slidepdf.com/reader/full/manual-turbo-debbuger 2/5

7/18/2019 Manual Turbo Debbuger

http://slidepdf.com/reader/full/manual-turbo-debbuger 3/5

Vistazo general

5a ventana principal de 0+ muestra una $arra de men6 estandar en la parte superior. En este

menu podemos encontrar los campos File, Edit, View, Run, Breakpoint, Data, Options, Windows,

Help. 5a $arra de estado en la parte inerior de la ventana de 0+ contiene inormación muy

interesante acerca del conte7to actual. 1or ejemplo, muestra a menudo la lista de todas las

unciones asociadas con las teclas de unción F1 a F10. 1or ejemplo F9 es el comando 8Run8. 5o

#ue signifcan esas unciones estará disponi$le en el conte7to actual.

Ventanas

+entro de la ventana principal de 0+ tenemos una variedad de su$(ventanas. En cual#uier

momento pueden estar activas varias de ellas. /asda ventana activa es numerada !', *, -, etc." y

ese n6mero se muestra en la es#uina superior derecha de la ventana. 9ás a$ajo descri$iremos

estas ventanas y comentaremos como se manejan. :6n cuando puede ha$er varias ventanas, hay

una #ue estarán encima de las demás. Esta ventana tendrá un pe#ue;o rectángulo verde en la

es#uina superior iz#uierda. 4e puede cerrar la ventana pulsando con el ratón en ese rectángulol 5a

tecla de unción F6 !Next " permite modifcar la ventana #ue está encima de las demás.

Ayuda Online

 <a hemos mencionado el menu Help !desplega$le". 1ero hay ayudas más inmediatas o sensi$les al

conte7to&

arra de estado

  5a $arra de estado muestra ha$itualmente la lista de las unciones asociadad con las '= teclas

de unción, 1ero si mantienes pulsada la tecla Alt, mostrará las unciones asociadas con la

com$inación Alt > las teclas de unción. 1or ejemplo, AltF! es la unción de 8User screen8 o

pantalla de usuario. 1rué$ala@ Es muy 6til si necesitas ver cual#uier salida del código #ue se

depura. 1ara volver a la pantalla de 0+ pulsa cual#uier tecla.

  4i mantienes pulsada la tecla Ctrl mostrará las unciones asociadas a la com$inación Ctrl"

teclas de unción. 1or ejemplo& Ctrl# nos permite inspeccionar la varia$le #ue es apuntada por el

cursor

 0ecla F1

  Esta tecla a$re una ventana de ayuda #ue contiene inormación acerca de la ventana #ue está

encima de las demás, con una serie de puntos para elegir.

4peed menu

  1uede ser invocado con una pulsación del $otón derecho del ratón. En la mayor2a de las

ventanas mostrará una lista de las opciones disponi$les para esa ventana.

Algunos menús desplegables

View

  5os tipos de ventanas disponi$les son listados en el men6 View

Windows

7/18/2019 Manual Turbo Debbuger

http://slidepdf.com/reader/full/manual-turbo-debbuger 4/5

  Esta opción nos permite manejar las ventanas. Este men6 está dividido en dos mitades& la

superior contiene comandos como oo! !F!", Next  !F6", Next "ane !$ab", etc. 5a mitad inerior es

una lista de las ventanas activas.

Run

  5as ventanas son para analizar el código y sus varia$les. 1ero para la acción, necesitamos

ejecutar el código. El menu Run proporciona varios modos de ejecución&

  Run !F9", hace correr el programa hasta #ue este termina !o hasta #ue se alcance un punto de

ruptura".

  #race $nto !F%", ejecuta un paso sencillo o una instrucción cada vez. 5o #ue se entiende por un

paso sencillo dependerá del contenido de la ventana #ue esté encima de las demás. 4i es una

ventana %odule o se pulsa F% se ejecuta una l2nea del código uente. 4i es una ventana &"U o se

utiliza la com$inación AltF%, se ejecuta una instrucción má#uina sencilla. 4i la linea de código

contiene una llamada a una unción, 0+ depura la unción.

  'tep O(er  !F&". Esta opción es como la anterior e7cepto #ue cuando el puntero de instrucción

apunta a una instrucción call se ejecuta la unción entera y el cursor se coloca en la siguiente linea

de código.

   )ni!ate. 4imilar a Run hasta #ue termina el código, e7cepto por #ue después de cada

instrucción muestra el contenido de los registros y varia$les para ver #ué es lo #ue está pasando.

  Restart  !CtrlF'". 9ueve el puntero de instrucción a la primera instrucción del programa.

Ventanas de TD

(a )entana Regs

  5a ventana Aegs muestra el contenido de todos los registros del procesador as2 como los Bags

de la /1C. Es posi$le visualizarlos como registros de 'D $it o de -* $its. arias opciones son

accesi$les a través del men6 local 'peed%enu !$otón derecho del ratón o AltF10". 4eg6n se va

ejecutando el programa !paso a paso" los cam$ios en registros y Bags se van resaltando en la

ventana.

(a )entana Dump

  9uestra el contenido de un área de la memoria en ormato he7adecimal. 5a parte de la

iz#uierda muestra la dirección de comienzo de la linea !p.ej. +4&====". En el ormato por deecto

!ormato $yte" se muestran F $yte por linea, y a la derecha de esos F $ytes están sus

representaciones en código :4/GG e7tendido. 4e puede usar el comando *oto del men6 local para

e7aminar las varia$les #ue deseemos.

(a )entana Module

  5a ventana muestra el código uente si hay inormación de depuración dentro del ejecuta$le. 5a

tecla F& avanza un paso en las lineas de código. 5a tecla F% tam$ién avanza en el código solo #ue

es capaz de depurar las llamadas a las su$rutinas. 5a tecla F' activa un punto de ruptura

7/18/2019 Manual Turbo Debbuger

http://slidepdf.com/reader/full/manual-turbo-debbuger 5/5

!breakpoint " en la linea apuntada por el cursor.

(a )entana CPU

  5a ventana /1C se com$ina las ventanas anteriores en una 6nica ventana. Es menos potente y

un poco más difcil de usar #ue las tres ventanas por separado.

Puntos de ruptura

  5os puntos de ruptura sirven para tomar unas acciones determinadas cuando se alcanza un

punto concreto en la ejecución del código. El usuario de$e defnir para un punto de ruptura tres

varia$les&

  5a dirección donde #ueremos parar el código.

  5a condición #ue activa el punto de ruptura

  5a acción #ue #ueremos realizar cuando se alcanza el punto de ruptura

  El tipo más simple de punto de ruptura es a#uel #ue !a" está asociado con una instrucción

espec2fca en el programa, y #ue !$" está siempre activada y !c" #ue para la ejecución del

programa. Estos se llaman puntos de ruptura simples o sencillos. Es el tipo asumido por deecto

por 0+, y de$er2a ser sufciente para nuestros propósitos. Ctilizando estos, podemos ejecutar el

programa a toda velocidad hasta alcanzar la instrucción especifcada y e7aminar entonces el

estado de la memoria y de la /1C.

¿/ómo se pone un punto de ruptura sencillo? ueno, sólo necesitamos especifcar una instrucción

del programa. 5a orma más sencialla es usar la ventana %odule o desde la su$ventana de código

de la ventana /1C. 1rimero situaremos el cursor en la l2nea de código donde deseamos poner el

punto de ruptura y pulsaremos F' #ue pondrá un punto de ruptura o lo #uitará si esta$a puesto.