-
Objetivos
- Instalar una máquina virtual con Linux
- Conocer el ambiente de trabajo Linux
- Utilizar los editores de texto, el compilador, el debugger, otros
-
Requisitos
- Debe instalarse el programa gcc para compilar compilar programas C++
- Debe instalarse el programa gedit para editar
- Debe instalarse el programa gdb
- Debe instalarse el programa ddd
-
Notas
- Recuerde que debe presentar un reporte escrito de este laboratorio, debe entregarlo a más tardar una semana después de realizado el laboratorio y siguiendo el formato indicado por los asistentes
- Anote todo lo que considere necesario en su reporte; en algunos casos se le solicita datos específicos que también debe anotar
- Recuerde que puede utilizar el comando "man" para ayuda (ej. "man man" )
-
Procedimiento
- Instalar una máquina virtual con Linux
- La máquina virtual debe tener 4 GB de ram
- La máquina virtual debe tener 16 GB de disco
- Utilice esta imagen: Fedora 28
- Construir un programa en el lenguaje de programación C o C++, no importa lo que se haga, solamente que no sea muy grande, aproximadamente unas 20 o 30 líneas. Debe contener al menos un procedimiento para poder investigar algunas de las opciones del "debugger". (puede utiliza "gedit" para crearlo)
- Compilar el programa
- Utilizar el compilador para crear el ejecutable, comprobar que haga lo que usted quiere
- Recuerde que el compilador genera un archivo que se llama "a.out"
- Utilice la opción "-o" del comando "gcc" para que genere un nombre diferente (gcc)
- Anote el tamaño del programa ejecutable, para ello utilice el comando
"ls -l"
- Recompilar el programa con información de debug
- Ahora compile su programa con la opción "-g" para que el compilador guarde los símbolos del programa (variables, estructuras, código fuente) de manera
que se pueda utilizar en programas como los "debuggers"
- Con esta nueva opción corra su programa para confirmar de que no ocurrió ningun cambio
- Anote también el tamaño de su programa y cualquier otra observación que considere importante
- Debugging en modo texto
- Utilice el comando "gdb [nombre_de_su_programa_ejecutable]", este es un "debugger" que utiliza comandos para correr el programa paso a paso
- Uno de los comandos más importantes en estos momentos es 'help', esta ayuda tiene varios capítulos, por ahora nos vamos a concentrar en la parte de correr programas, por lo tanto escriba 'help running' y analice los comandos que alli aparecen
- Anote en su reporte cuales son los comandos para ejecutar una instrucción, para ingresar a un procedimiento, para desplegar el valor de las variables
- Debugging en modo gráfico
- Utilice ahora el comando "ddd" que es un "debugger" grafico y algunos de los comandos que estudiamos en el punto anterior ahora aparecen como botones
- Anote en su reporte esos comandos
- Escriba el siguiente programa en lenguaje C, colóquele el nombre "fork.c"
#include <stdio.h>
int main() {
if ( fork() )
printf( "Estoy por la parte verdadera del if\n" );
else
printf( "Estoy por la parte false del if\n" );
}
- Compile el programa y córralo y anote en su reporte los resultados
- Utilice el "debugger" para hacer un análisis más a fondo de los resultados
- Anote en su reporte una posible explicación a lo que sucede
- Revise las opciones del "gdb" denominadas "show follow-fork-mode" y "show detach-on-fork", anote en su informe el significado