Documentos de Académico
Documentos de Profesional
Documentos de Cultura
E.T.S.I. Telecomunicacin
Curso 2011/2012
Prctica 0
La prctica sirve para refrescar conceptos con los que trabajar con secuencias de bytes,
cadenas de caracteres, punteros y estructuras de datos. Tambin supone un acercamiento
a un entorno de desarrollo visual (Kdevelop).
1 Entorno de desarrollo:
La mquina virtual de laboratorio est disponible en
D:\FSC-JMCruz-Fedora16-x86_2C_2011_2012.
2
A continuacin, se pide confirmar la ruta al gestor del proyecto (el comando
cmake, del que se hablar en otro momento). Pulsar OK.
Si todo ha ido bien, aparecer algo parecido a esta pantalla:
Ahora, siempre antes de ejecutar hay que compilar. El marco superior izquierdo
se denomina gestor de proyectos, y desplegando sobre el icono con la carpeta del
nombre del proyecto, aparecern varios iconos que representan ficheros del
mismo. El primer icono desplegado (una rueda dentada con un smbolo de
play azul) representa las posibilidades de compilacin y ejecucin. Si
pulsamos con el botn derecho sobre el mismo, aparecer un men contextual
con la opcin de compilacin resaltada en la siguiente imagen:
3
Pulsando, para iniciar la compilacin del proyecto debe aparecer este resultado:
4
Si no hay errores, entonces estamos listos para ejecutar la aplicacin. Hay dos
tipos de ejecucin: orientada a depuracin y orientada a produccin.
Normalmente utilizaremos la primera, en la que el compilador introduce cdigo
adicional para ayudar a depurar el cdigo: ejecucin guiada paso a paso,
inspeccin del valor de las variables, etc. En modo depuracin, un programa es
ms pesado (ocupa ms bytes en disco) y es ms lento. As que el programa en
modo depuracin solo es vlido para pruebas de laboratorio (como en esta
asignatura). Para los clientes finales, se tiene que dar un ejecutable sin smbolos
de depuracin y, obviamente, sin errores!
5
NOTA: El comando equivalente para generar la versin de depuracin en
consola: es g++/gcc -g o nombre_del_ejecutable archivos_fuente.c/cpp
No obstante, para realizar depuraciones en consola, como veremos a
continuacin, habra que utilizar el comando gdb. Afortunadamente, Kdevelop
esconde el trabajo directo con este comando de una forma visual y ms intuitiva.
Sobre nuestro cdigo, vamos a ejecutar las instrucciones del programa una a
una. Para ello, hay que empezar solicitando al depurador que pare en una
instruccin concreta. A esto se le llama poner un punto de ruptura. Se pueden
poner tantos como se quieran, tanto en el main() como en otras funciones y
procedimientos.
Para poner un punto de ruptura en una sentencia, hay que irse al margen lateral
izquierdo (marcado en gris) y pulsar con el botn izquierdo del ratn. Debe
aparecer un icono con una mariquita:
6
Ahora vamos a repetir la operacin de Debug as... -> Native Application, y
debera suceder algo distinto, puesto que la aplicacin no termina, sino que se
queda esperando a ejecutar justo la instruccin donde nosotros hemos puesto el
punto de ruptura:
7
A partir de aqu, t controlas la ejecucin!
8
Pulsando varias veces la tecla F10, debera actualizarse el puntero de ejecucin y
salir del programa. al final.
Nota: Para eliminar puntos de ruptura existentes, basta con pulsar sobre el icono
de la mariquita.
Entradas al programa:
9
Para permitir la entrada por teclado, marca el uso de terminal externo para E/S.
Mira la siguiente figura:
10
Para incluir argumentos de entrada al ejecutable, introdcelos en la caja de texto
Arguments. Por ejemplo, si nuestro ejecutable se llama mi_ls, y se ejecuta con
argumentos:
$> mi_ls la,
NOTA: Para que funcione la E/S por terminal, hay que habilitar al usuario
alumno, que es el que ejecuta Kdevelop, para que pueda abrir y controlar
terminales (consolas de tipo Unix tty). Para ello, cierra Kdevelop y abre una
consola e introduce estas lneas:
$> su
(te pide la password de super usuario, que es: alumno)
#> usermod G tty alumno
#>exit
$>exit
http://www.cplusplus.com/doc/tutorial/arrays/
http://www.cplusplus.com/doc/tutorial/ntcs/
http://www.cplusplus.com/doc/tutorial/pointers/
11
-Punteros a funciones
http://www.cplusplus.com/doc/tutorial/dynamic/
d) Estructuras de datos:
http://www.cplusplus.com/doc/tutorial/structures/
12