====== Esercitazione debugging ====== L'esempio usato a lezione {{:fisica:informatica:201415:esercitazioni:esempio-ddd.tar| qua in formato tar}} ed i micro {{:fisica:informatica:201415:esercitazioni:esempio_debugging.pdf|lucidi introduttivi}}. ===== Esercizio 1: sul debugging ===== Usare il debugger [[http://www.gnu.org/software/ddd/manual/|ddd]] per trovare cosa non va nel seguente programma C: #include #include #include #include #define N 5 int main(void) { int a[N]; int i; srand(time(NULL)); i=0; while (i in pratica il codice, salvato in "file.c" compilato con gcc -Wall -pedantic -o ese file.c ed eseguito con $ ./ese va inspiegabilmente in ciclo all'interno del ciclo. Per eseguire in modalita' interattiva di debugging: * Compilare con opzione "-g", ad esempio gcc -Wall -pedantic -g -o ese file.c * lanciare l'eseguibile usando il debugger come in $ ddd ./ese a questo punto e' possibile fermare il programma durante la sua esecuzione, ispezionare le variabili etc.. ===== Esercizio 2: Debuggare codice altrui ... ===== //Per i solutori piu' che abili// Utilizzare DDD per provare a trovare cosa non va nei due programmi C in {{:informatica:sol:laboratorio11:esercitazioni:esempi-debug.tar|esempi.tar}}.