ESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOS PROGRAMACION I Ciclo II-2012 USO DEL DEBUG en DeC O!"e#io$ Conocer y aplicar la herramienta Debug del Dev C en la depuracin de programas. Con la tcnica de la corrida en papel, se simula el comportamiento de la memoria del computador en cada paso de la ejecucin de un programa. La depuracin de programas consiste en hacer la ejecucin del mismo con un conjunto de herramientas automticas que incorpora la ID !Inter"a# de Desarrollo Integrado$ del DevC, permitiendo %inspeccionar& de m'ltiples "ormas el comportamiento de la corrida de un programa. (racias a las herramientas de depuracin, se puede) *er el valor de las variables que usa el programa. jecutar l+nea a l+nea el programa, bien sea entrando o no al detalle de cada mtodo o "uncin jecutar el programa hasta una l+nea en la que se %sospecha& se produce una "alla, y ver la secuencia de las instrucciones respectivas. n "in, el propsito 'ltimo es veri"icar que la secuencia del programa y los valores de memoria se comportan tal y como est planeado. De "orma predeterminada, la depuracin de un proyecto en DevC est desactivada. sto es as+ ya que los programas corren un poco ms lento en la ID cuando est activada esta caracter+stica. s necesario %con"igurar& el proyecto para que active la depuracin !ver "igura ane,a$) a$ -brir el proyecto b$ .eleccionar la opcin de men' %/royecto 0 1pciones de /royecto& c$ .eleccionar la pesta2a %Compilador& d$ .eleccionar el v+nculo %nla#ador& e$Cambiar a %.i& la opcin %(enerar In"ormacin de Depuracin& 3anto el men' %Debug& como el panel in"erior, o"recen las opciones para comen#ar a depurar) De%&'(ci)n *e &n P'o+'(,($ 4bicar la l+nea donde se desea detener el programa. stablecer un %punto de parada& del programa. - /resionar Ctrl567, o - 4sar el men' %Depurar 0 -lternar punto de parada&, o - 8acer clic en la barra vertical negra junto al cdigo. 1 Cmo activar la depuracin de un programa con DevC++ Iniciar la depuracin !9otn %Depurar& o tecla 6:$. De%&'(ci)n P(-o ( P(-o *e &n P'o+'(,($ l programa se detendr justo en la l+nea del punto de parada. n este momento, se tienen las siguientes opciones) - 6; !/r,imo paso$) el depurador avan#ar una instruccin !l+nea de cdigo$ - .hi"t56; !ntrar a instruccin$) el depurador avan#ar una instruccin, y si es una "uncin, entrar. - Ctrl56; !Continuar$) el depurador continuar con la ejecucin del programa hasta que consiga otro punto de parada O!-e'(ci)n *el V(lo' *e V('i(!le- . Mie,!'o- *e Cl(-e-$ La pesta2a %Depuracin& muestra el valor de las variables. .e pueden agregar) - Colocando unos segundos el ratn encima de la variable. - Colocando el cursor en la variable y presionando %-2adir variable vigilada& 2 Cmo comenzar a depurar con DevC++ Depuracin paso a paso con DevC++ La siguiente "igura muestra la depuracin de la siguiente l+nea del programa, y el estado de la variable %opcion&. C)*i+o *e S&!'&#in(-/ F&ncione- o M0#o*o-$ La siguiente "igura muestra que el depurador %entra& al cdigo de CargarDatosmpleado luego de haber presionado .hi"t56; .e podr continuar paso a paso presionando 6; 3 Observar el valor de variables mientras depuras Entrar en el cdigo de subrutinas, funciones o mtodos O#'(- O%cione- *e De%&'(ci)n$ S1i2#3F4/ E"ec&#(' 1(-#( el c&'-o') .e coloca el cursor en la l+nea deseada y el programa se ejecutar hasta llegar all+ F5/ Si+&ien#e %(-o) el programa se ejecuta hasta la pr,ima parada C#'l3Al#3F2, De#ene' e"ec&ci)n) el programa termina C(,!i(' el (lo' *e &n( ('i(!le) hacer clic derecho encima de la variable Re,oe' i+il(nci() elimina de inspecciones una variable C(-o- *e A%lic(ci)n$ Lo- 'e-&l#(*o- no -on lo- e-%e'(*o-) correr paso a paso y veri"icar que las instrucciones y las variables van tomando los valores esperados. F(ll( -)lo &n c6lc&lo) establecer puntos de parada en los componentes !mtodos$ encargados de dichos procesos. C&(n*o lo- co,%onen#e- e-#6n co,%'o!(*o-) usar slo 6; !siguiente instruccin$, y no se tendr que ir paso a paso dentro del componente. Co,%'o!(' l( co''i*( en %(%el) usar una tabla de datos de prueba, con las distintas combinaciones de depuracin para veri"icar que a cada paso de la ejecucin del programa los resultados en las tablas de datos y la inspeccin de variables coinciden. Cuando se observe alguna "alla, corregir, recompilar y comen#ar de nuevo. 4