Questa è una vecchia versione del documento!
Esercitazione 1
Illustrazione dei principali comandi emacs. Cenni a vi. Illustrazione dell'uso del debugger gdb su un semplice programma. Esercizio sul debugger gdb.
Illustrazione uso gdb
Vediamo come si usa il debugger gdb usando il codice usodebug.c
contenuto in questo tarball. I comandi principali di gdb
da ricordare sono:
- run ( r ), break <file:linea> ( b ), step ( s ), next ( n ), print <variabile> ( p ), set args <argomenti>, backtrace ( bt ), finish, continue ( c ), quit ( q ).
Esercizio 1
Usare il debugger gdb
(o per chi vuole la sua interfaccia grafica ddd ) per trovare gli errori in findbug.c
(nello stesso tarball precedente) e correggerli.
Compilare il codice nel seguente modo (ATTENZIONE all'opzione-g
che abilita le informazioni di debugging):
gcc -std=c99 -g findbug.c -o findbug
quindi lanciare l'eseguibile e verificare quali errori produce, quindi, usando il debugger:
$ gdb ./findbug
inserire un breakpoint nel main (b
main) ed eseguire il programma (r
) step-by-step (n
o s
). Identificato l'errore e modificare il programma opportunamente.
Trovare il bug nel file findbug2.c
(nello stesso tarball)
Esercizio 2
Scrivere un programma C che prende in ingresso 2 interi e 2 stringhe. Stampare a video tutta la lista degli argomenti (argv) e tutte le variabili d'ambiente del programma (envp). Ricordare che una possibile segnatura della funzione main e':
int main(int argc, char *argv[], char *envp[]);