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

Documentos relacionados