doc - David Bueno Vallejo
Transcripción
doc - David Bueno Vallejo
Dpto. Lenguajes y Ciencias de la Computación E.T.S.I. Telecomunicación Laboratorio de Programación Uso del depurador en Dev-C++ Abril 2004 David Bueno Vallejo Plan • • • • • Introducci ón a la depuració Introducció depuraci ón Preparació Preparaci ón del entorno Puntos de ruptura (breakpoints (breakpoints)) Visualizar variables (watches (watches)) Moverse por el có código 2 1 Introducció Introducci ón a la depuració depuración • Cuando un programa no funciona es necesario descubrir en que parte del có código se produjo el problema. Fallos comunes son: – – – – Acceso a índices de arrays fuera de rango Acceso a zonas de memoria no reservada (punteros) Bucles infinitos No comprobar si un fichero se abrió abrió correctamente e intentar leerlo • Depuraci Depuració ón manual – La forma má más bá básica de depurar un programa consiste en sacar mensajes por la consola y ver cuá cuáles de éstos se muestran. Cuando un mensaje no aparece quiere decir que el error está está entre el último que se mostró mostr ó y éste. Pudiendo así así acotar el error 3 Introducció Introducci ón a la depuració depuración • Depuraci Depuració ón manual (cont (cont)) – Los mensajes que se muestren deben dar informació informació n del lugar en el que se ejecutan (por ejemplo poniendo en nombre de clase:metodo o procedimiento en el que se encuentre) y si es necesario datos de variables que se quieran verificar. cout << “Insertar: dato=”<<dato<<endl; cout << “Insertar: Antes del bucle”; – Se irá irá reduciendo la distancia entre los mensajes hasta encontrar el punto en el que se produce el error – Este tipo de depuració depuració n es muy útil para sistemas a los que no se puede aplicar un programa depurador (debugger (debugger), ), la salida se hace a consola y si no hay consola a ficheros. – Ejemplos: Programació Programació n Web, Programació Programaci ón con Allegro en C++ 4 2 Introducció Introducci ón a la depuració depuración • Depuraci Depuració ó n automá automá tica – Muchos entornos de programació programació n traen integrado un depurador que permite visualizar paso a paso la ejecució ejecució n de nuestro programa mostrando los valores de las variables en cada momento. Las acciones acciones comunes a la mayorí mayoría de depuradores son las siguientes: – Ir a la instrucció instrucció n siguiente (next (next step step,, siguiente paso en Dev Dev--C++ C++)) • Va a la siguiente instrucció instrucción del có código pero no entra si es una llamada a un procedimiento – Ir a la instrucció instrucció n siguiente (step (step into into,, avanzar paso a paso en Dev Dev--C++ C++)) • Va a la siguiente instrucció instrucción del có código aunque esta se encuentre en otro procedimiento, clase o fichero – Continuar (continue (continue,, saltar paso en Dev Dev--C++) • Continua la ejecució ejecución hasta el siguiente punto de ruptura – A ñadir puntos de ruptura (breakpoints (breakpoints)) • Permiten marcar líneas del programa en las que se quiere que se pare la ejecució ejecuci ón. Así Así no es necesario ir paso a paso desde el principio – Visualizar variables (add (add watch watch,, añ añadir watch en Dev Dev--C++) • Permite ver los valores de una variable mientras esta se ejecuta 5 Introducció Introducci ón a la depuració depuración • Ventana de depuració depuraci ón en Dev Dev--C++ Ejecución Paso a paso Valores de variables Acciones 6 3 Preparació Preparaci ón del entorno • Para que nuestro programa pueda utilizar el depurador de Dev Dev--C++, hay que indicarlo en el proyecto: – Proyecto à Opciones de proyecto à Compilador à Linker à Generar informació informaci ó n de debug = Yes • Tambi Tambié én se puede hacer para todos los programas en: – Herramientasà Herramientas à Opciones del Compilador à Configuraci Configuració ó n àLinker à Generar informació informació n de Debug = Yes 7 Preparació Preparaci ón del entorno • Tambi Tambié én es muy útil para visualizar de forma rá rápida el valor de las variables activar los siguiente campos: – Herramientas à Opciones del Entorno à Principal Principalà à Exploraci Exploració ón de depuració depuración de variables à “Observar la variable seleccionada”” y “mostrar errores observados” seleccionada observados” 8 4 Puntos de ruptura (breakpoints (breakpoints)) • Permiten marcar lílíneas del programa en las que se quiere que se pare la ejecució ejecuci ón. Se marca poniendo en rojo la linea • Para añ añadir/quitar un punto de ruptura se puede: – hacer clic al principio de la lílí nea (ver globo) – En la lí l ínea donde este el cursor pulsar Ctrl Ctrl+F5 +F5 – En la lí l ínea donde este el cursor a travé través Depurarà Depurar àAñadir adir/Quitar /Quitar punto de ruptura del men ú menú Hacer clic aquí 9 Visualizar variables (watches (watches)) • Las variables se pueden visualizar en la parte izquierda de la ventana de las siguientes formas: – Pulsando F4 o Añ Añadir Watch del menú men ú depurar à Poniendo el nombre de la variable – Pasando el rató rató n por encima de la variable en la parte del có c ódigo (esto só sólo funciona si se ha preparado en entorno como se indicó indic ó al comienzo de este tutorial tutorial)) • Si el entorno no reconoce el tipo de una variable de tipo puntero se le puede indicar el tipo de esta forma: – *( *(TipoPuntero TipoPuntero *) ptr 10 5 Moverse por el có código • Para avanzar por el có código se puede seguir la barra de depuraci ón (parte inferior del entorno) o las teclas depuració rápidas que muestra el menú menú depurar • IMPORTANTE – Es importante poner un punto de ruptura al principio para que el programa no se ejecute directamente. – Para comenzar la ejecuci ejecució ó n pulsar sobre Depurar y despué después sobre Siguiente Paso 11 6