Illustrazione dei principali comandi emacs. Cenni a vi. Principali differenza tra ANSI C e C99. Illustrazione uso del debugger gdb su un semplice programma. Esercizio sul debugger gdb.
Vediamo come si usa il debugger gdb usando is codice usodebug.c contenuto in questo tarball. I comandi del 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 ).
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, poi usando il debugger:
$ gdb ./findbug
inserire un breakpoint nel main ed eseguire il programma step-by-step. Identificato l'errore modificare il programma opportunamente.
Trovare il bug nel file findbug2.c
(nello stesso tarball)
Scrivere un programma C che stampa 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[]);