fisica:informatica:201718:esercitazioni:esercitazionedeb
Differenze
Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.
fisica:informatica:201718:esercitazioni:esercitazionedeb [12/03/2018 alle 11:55 (7 anni fa)] – creata Susanna Pelagatti | fisica:informatica:201718:esercitazioni:esercitazionedeb [12/03/2018 alle 12:01 (7 anni fa)] (versione attuale) – Susanna Pelagatti | ||
---|---|---|---|
Linea 106: | Linea 106: | ||
</ | </ | ||
+ | ===== Esercizio 3: (avanzato) Verificare i memory leak con '' | ||
+ | Con riferimento al main sviluppato per l' | ||
+ | |||
+ | Per la verifica si utilizzi la funzione '' | ||
+ | |||
+ | Per fare questo procedere come segue: | ||
+ | * leggere le informazioni in '' | ||
+ | * includere l' | ||
+ | * inserire la chiamata alla funzione di libreria mtrace() all' | ||
+ | * inserire la chiamata alla funzione di libreria muntrace() alla fine della parte del programma C che vogliamo verificare | ||
+ | * compilare il file da verificare con opzione '' | ||
+ | <code bash> | ||
+ | bash$ gcc -Wall -pedantic -g -o prova main.c | ||
+ | </ | ||
+ | * settare la variabile di ambiente '' | ||
+ | <code bash> | ||
+ | bash$ export MALLOC_TRACE=./ | ||
+ | </ | ||
+ | * eseguire, nel nostro esempio con: | ||
+ | <code bash> | ||
+ | bash$ ./prova | ||
+ | </ | ||
+ | * dopo l' | ||
+ | <code bash> | ||
+ | bash$ mtrace ./prova ./ | ||
+ | </ | ||
+ | questo rispondera' | ||
+ | |||
+ | ===== Esercizio 4: (avanzato) verificare gli accessi in memoria: valgrind ===== | ||
+ | |||
+ | Verificare la correttezza degli accessi ai puntatori dello heap compiuti dalle funzioni su liste sviluppate negli esercizi precedenti utilizzando '' | ||
+ | Questo strumento permette fra l' | ||
+ | |||
+ | |||
+ | Per fare questo procedere come segue: | ||
+ | * compilare il file da verificare con opzione '' | ||
+ | <code bash> | ||
+ | bash$ gcc -Wall -pedantic -g -o prova main.c | ||
+ | </ | ||
+ | * eseguire | ||
+ | <code bash> | ||
+ | bash$ valgrind ./prova | ||
+ | </ | ||
+ | in questo modo, a schermo verranno riportare le infrazioni rilevate. Ad esempio, //invalid read// o //invalid write// sono accessi in lettura o scrittura a memoria non allocata o gia' deallocata. | ||
+ | |||
+ | '' |
fisica/informatica/201718/esercitazioni/esercitazionedeb.1520855740.txt.gz · Ultima modifica: 12/03/2018 alle 11:55 (7 anni fa) da Susanna Pelagatti