Title: Depuracin de programas
1Depuración de programas
2Categorías de errores
- Errores sintácticos
- (e.g., ERROR expected)
- Errores de ejecución
- (e.g., exceder el rango de un vector)
- Errores lógicos
- (e.g., bucles que se ejecutan más veces que
deberían)
3Localización de errores
- A veces, las fuentes de errores lógicos o de
ejecución son obvias y se pueden corregir de
manera sencilla. - A menudo, el error no es evidente y se requiere
un tiempo considerable para localizarlo - DEPURACIÓN
4Mostrar resultados intermedios
- Examinar la salida para determinar qué parte del
programa genera resultados incorrectos. - Centrarse en las sentencias del fragmento del
programa que están generando incorrecciones. - Insertar instrucciones de escritura extra para
mostrar resultados intermedios en distintos
puntos de programa.
5Mostrar resultados intermedios
PROGRAM C(Input,Ouput) CONST Sentinel10 VAR
Score,SumInteger Begin readln(Score) while
Scoreltgt Sentinel do begin SumSumScore
Writeln(Sum,sum,
Score,score) Readln(Score) end while
writeln('El valor de la suma es ',sum) End.
PROGRAM C(Input,Ouput) CONST Sentinel10 VAR
Score,SumInteger Begin readln(Score) while
Scoreltgt Sentinel do begin SumSumScore
Readln(Score) end while writeln('El valor de
la suma es ',sum) End.
6Precauciones con inserción de instrucciones
- Puede ser necesario añadir begin end
- Puede ser necesario incluir
- Puede ser útil comentar las instrucciones de
escritura para futuras depuraciones, en lugar de
eliminarlos completamente
7Errores comunes en tratamiento de bucles
- Bucles que realizan una iteración de más
- Count0
- while Count lt N do
- begin
- SumSumCount
- CountCount 1
- end while
8Errores comunes en tratamiento de bucles
- Examinar los variables de control del bucle
- Sum0
- for IK To N-K do
- SumSumSqr(I)
-
- si I K --gt Sum K2
- si I N-K --gt Sum Sum (N-K)2
9Utilizando el depurador de Turbo Pascal
- Un depurador ayuda a localizar errores lógicos de
un programa. - El depurador de Turbo Pascal permite ejecutar el
programa paso a paso y observar la evolución de
las variables y expresiones.
10Ejecución paso a paso
- Dentro del menú Run, la opción Trace into permite
usar el depurador de Turbo Pascal - La tecla de función F7 permite avanzar la
ejecución instrucción a instrucción
11La ventana Watch
- La ventana Output nos muestra el valor de una
variable sólo cuando se muestra con una
instrucción Writeln - La ventana Watch nos permite ver el valor de
expresiones y variables durante la ejecución del
programa sin necesidad de utilizar instrucciones
Writeln
12La ventana Watch
- Añadir nuevas variables o expresiones a la
ventana Watch - Situar el cursor sobre la variable o expresión
- Seleccionar dentro del menu Debug la opción Add
Watch (Ctrl-F7) - Eliminar variable / expresión del Watch
- Con la tecla SUPR
- Cerrando la ventana Watch
13Combinando la ejecución normal con la ejecución
paso a paso
- Es posible ejecutar una parte del programa de
manera normal y el resto paso a paso - Marcar el inicio de la parte a ejecutar paso a
paso con F4 - Turbo Pascal ejecutará todo el código hasta
llegar a ese punto de manera normal - A continuación, se añaden las variables al WATCH
y se realiza una ejecución paso a paso
14Depuración con Breakpoints
- Un estilo común de depuración consiste en separar
el programa en segmentos y detenerse tras
ejecutar cada segmento para examinar la ventana
Watch - De esta manera, se localizan los segmentos
erróneos y se realiza la depuración paso a paso
sobre ellos
15Depuración con Breakpoints
- PASOS
- Separar el programa en fragmentos introduciendo
breakpoints - (CTRL-F8 o Add breakpoint)
- Ejecutar todas las instrucciones hasta el
breakpoint (CTRL-F9) - Ejecución paso a paso (F7)
16Depuración con Breakpoints
- Para ver la lista de breakpoints seleccionar
dentro del menú Debug la opción Breakpoints - Con DELETE se puede eliminar el breakpoint
seleccionado - La opción VIEW marca el punto del programa donde
el breakpoint se ha definido (sin comenzar la
ejecución) - Se pueden añadir condiciones a los breakpoint en
el campo CONDITION, de manera que sólo se
detendrá la ejecución en ese punto si la
condición se hace cierta - Con CLEAR se eliminan todos los breakpoints
17Inicializar el depurador
- Para comenzar la ejecución del programa durante
la sesión de depuración CTRL-F2 - De esta manera, se inicializa el depurador y se
sitúa la barra de depuración sobre el begin del
programa principal
18Modificaciones en el programa durante la
depuración
- Cuando se realizan modificaciones en el programa
durante la sesión de depuración, Turbo Pascal
preguntará - Source has been modified. Rebuild?
- Y el programa se compila de nuevo y la barra de
ejecución se sitúa en el begin del programa
principal - N continúa la sesión de depuración
19 Cómo localizar los errores?
SELECCIÓN DE CASOS DE PRUEBA (PRÓXIMA
SESIÓN)