Actualizado el 21 de Marzo del 2018 (Publicado el 31 de Diciembre del 2017)
2.229 visualizaciones desde el 31 de Diciembre del 2017
159,5 KB
9 paginas
Creado hace 17a (10/09/2006)
PRÁCTICA
3
Introducción al
Depurador de Dev-C++
El objetivo de esta práctica es el conocimiento de la herramienta que proporciona Dev-C++
para la corrección de errores de ejecución: el depurador o debugger. Es primordial que al final de esta
sesión el alumno sepa cómo depurar un programa en C++.
1. Utilización del Depurador de Dev-C++
Hemos comentado anteriormente los tipos de errores que podían aparecer durante el desarrollo
de un programa. Unos eran los errores léxicos, los más sencillos de corregir, pues eran detectados por
el propio compilador.
Una vez compilado el programa (eliminados los errores léxicos) pueden seguir apareciendo
fallos durante la ejecución debido a la presencia de errores de ejecución. Estos errores no pueden ser
detectados automáticamente y para su corrección se debe repasar mentalmente, instrucción por
instrucción, la traza del programa. De este modo podemos detectar el fallo, averiguando en qué
momento el comportamiento real del programa se separa del comportamiento esperado.
Los actuales entornos de programación incluyen una herramienta de ayuda para la corrección
de este tipo de errores. Esta herramienta, conocida como depurador o "debugger", facilita el
seguimiento de la traza de ejecución del programa.
1.1.- Cómo trabaja un Depurador.
• La ejecución paso a paso de las instrucciones del programa. Tras la ejecución de una instrucción
el entorno devuelve el control del ordenador al programador que puede comprobar cómo se ha
ejecutado la instrucción.
Básicamente un depurador permite el seguimiento de la traza de un programa al facilitar:
• La monitorización del valor de las variables del programa. Podemos ver cómo cambia el valor de
las variables tras la ejecución de cada instrucción.
25
Fundamentos de Informática. Práctica 3.
Introducción al Depurador de Dev-C++
Colocar un punto de parada
El depurador de Dev C++ proporciona un conjunto de utilidades para la corrección de errores,
1.2. El depurador de Dev-C++ .
las más importantes son las siguientes:
Un punto de parada (breakpoint) obliga a la detención de la ejecución del programa cuando se
alcanza dicho punto. Los puntos de parada son útiles en la depuración, pues permiten al programador
observar el estado del entorno del programa (contenido de variables) en un momento concreto de la
ejecución y no solo al final de la misma. Pero además, Dev-C++ exige colocar al menos un punto de
parada para poder utilizar el resto de herramientas del depurador.
Hay dos formas de activar un punto de parada. La más sencilla es pulsar con el ratón en la
zona del margen junto a la línea en la que queremos situar el punto de parada. Otra forma es situar el
cursor en la línea en que queremos situar el punto de parada y usar el menú Depurar, opción
Añadir/Quitar punto de Ruptura.
Para activar/desactivar un “punto de parada”:
Menú Depurar; opción Añadir/Quitar punto de Ruptura
En cualquiera de los casos, se visualizará la línea con fondo rojo, y un icono rojo con una
especie de 'V' verde en su interior en la zona del margen:
Ejecutar un programa en modo de depuración
en la barra de
herramientas. El mismo icono está en la parte inferior, en la pestaña de "Depurar", al activar esta
De nuevo hay varias formas de hacer esto. Una consiste en pulsar el icono
pestaña podemos acceder al icono de "Depurar"
hacerlo mediante el menú "Depurar->Depurar", o pulsando la tecla [F8].
, por último, también podemos
26
En cualquier caso, el programa se ejecutará normalmente hasta alcanzar un punto de parada.
En ese momento el control vuelve al entorno de Dev-C++ y se muestra la línea de ejecución actual con
fondo azul y con un icono en forma de flecha en el margen:
Fundamentos de Informática. Práctica 3.
Introducción al Depurador de Dev-C++
Otra variante de punto de parada consiste en situar el cursor en la línea hasta la que queremos
Ejecución paso a paso
que se ejecute el programa y pulsar "Ir al cursor"
. Esto trabaja igual que si
hubiéramos situado un punto de parada en esa línea, y lo borráramos una vez alcanzado. Pero
cuidado, el resto de los puntos de parada siguen activos, si se alcanza uno de ellos antes que la
posición del cursor, el programa parará en ese punto.
Es la característica más importante de un depurador: el que se pueda ejecutar una y sólo una
instrucción del programa y que el entorno nos devuelva el control para poder comprobar si los efectos
de esa instrucción son los deseados o no.
Una vez puesto el o los puntos de parada y dada la orden “Depurar”, la ejecución se detiene en
el primer punto de parada. A partir de aquí podemos optar por ejecutar el programa hasta el siguiente
punto de parada, pulsando "Saltar paso", o reanudar la ejecución paso a paso ejecutando la siguiente
sentencia, mediante "Siguiente paso" o “Avanzar paso a paso”.
La diferencia entre "Siguiente paso" y "Avanzar paso a paso" es sutil pero importante. Si la
sentencia contiene una llamada a una función, "Siguiente paso" la ejecutará como una sentencia única,
y "Avanzar paso a paso" transferirá la ejecución al interior de la función y ejecutará sus sentencias paso
a paso.
27
claro en la ventana del programa que nos indicará la instrucción que se va ejecutar la próxima vez
En el momento que entremos en este modo de ejecución aparecerá una barra de color azul
Fundamentos de Informática. Práctica 3.
Introducción al Depurador de Dev-C++
Para ejecutar PASO A PASO:
Menú Depurar y opción Siguiente paso (F7) o Avanzar paso a paso ( Shift+F7 )
Si se desea suspender la ejecución paso a paso, se debe seleccionar en el menú Depurar la
Pulsando sucesivamente F7 iremos ejecutando instrucción por instrucción. (NOTA: si hay dos o
más instrucciones en una misma línea, el depurador las ejecutará todas a la vez, pasando a la siguiente
línea con instrucción/es).
opción Parar ejecución.
Inspeccionar variables: Los "watches"
Un "watch" en Dev-C++ es un representante de una variable que se desea monitorizar. Muestra
el valor de la variable a la que representa. Se debe crear un "watch" para cada variable cuya evolución
desee vigilar.
Para CREAR un "watch":
Menú Depurar; opción Añadir watch (F4)
Aparecerá un cuadro de diálogo en donde escribiremos el nombre de la variable del "watch".
En ese momento aparecerá en la columna de la izquierda la variable observada junto con su valor.
Podemos crear (o eliminar) un "watch" en cualquier momento durante la ejecución del programa.
28
Fundamentos de Informática. Práctica 3.
Introducción al Depurador de Dev-C++
Con este ejercicio aprenderás a:
Con este ejercicio repasarás como:
2. Sesión de prácticas
2.1. Primer ejercicio.
· Utilizar el depurador para realizar la traza de un programa muy simple
· Crear watches para las variables de un programa
· Ejecutar un programa paso a paso.
· Editar un programa
· Compilar un programa.
cualquier otro programa. Recomendamos recordarlos para futuras prácticas.
A. Editar el programa a depurar.
servirnos de soporte para practicar con el depurador. Es el siguiente:
Es preciso que lo completes en su totalidad.
#include <iostream>
#include <cstdlib>
using namespace std;
Para ello describiremos los pasos necesarios, que serán los mismos a seguir cuando se depure
Como primer ejemplo elegiremos un programa muy sencillo cuya única utilidad es la de
int main()
{
int a, b, c, d;
a=1;
b=2;
c=3;
d=4;
cout<<"a= "<<a<<endl;
cout<<"b= "<<b<<endl;
cout<<"c= "<<c<<endl;
cout<<"d= "<<d<<endl;
for (a=1;a<=5;a++){
cout<<"a= "<<a<<endl;
}
for (b=1;b<=5;b++){cout<<"b= "<<b<<endl;}
system("PAUSE");
return 0;
}
Guárdalo con el nombre P3EJ1.
29
Fundamentos de Informática. Práctica 3.
Introducción al Depurador de Dev-C++
Compila el programa, si hubiese errores corrígelos y compila de nuevo.
B. Compilar el programa.
C.- Ajustar el tamaño de las ventanas
ajusta el tamaño de ambas y colócalas de forma que no queden superpuestas.
D.- Colocar un punto de parada
Coloca un punto de parada en la línea que contiene la instrucción c=3;
Es conveniente poder visualizar simultáneamente la ventana del editor y la de salida, así que
E.- Arranque del modo Paso-a-Paso.
Procede como se explicó en el apartado anterior, recuerda:
Menú Depurar, opción Depurar, o bien botón
Para ejecutar PASO-A-PASO:
Menú Depurar y opción Siguiente paso (F7) o Avanzar paso a paso ( Shift+F7 )
F. Creación de los Watches
Procederemos como se ha explicado anteriormente (punto 1.2) para crear cuatro "watches",
uno para cada variable del programa (normalmente no se crean tantos como variables, pero esto es un
ejemplo).
Aparecerá en la columna de la izquierda cada variable seguida de un símbolo “=” y seguido de
un signo de interrogación si todavía no ha tomado ningún valor o del valor que tiene en ese momento
dentro del programa.
30
Con este ejercicio aprenderás:
Es preciso que lo completes en su totalidad.
El programa es el siguiente:
Fundamentos de Informática. Práctica 3.
Introducción al Depurador de Dev-C++
Con este ejercicio repasarás como:
G.- Ejecución Paso a Paso
Comentarios de: PRÁCTICA 3 Introducción al Depurador de Dev-C++ (0)
No hay comentarios