Indice:BRTableOfContents |
Introduzione
Valgrind è una suite costituita da strumenti per il debugging e da programmi di profiling. Ci sono tre strumenti:
- un rilevatore di errori di memoria;
un time profiler;
uno space profiler.
Riguardo il debugging, il rilevatore di errori di memoria è uno strumento molto pratico.
Rilevatore errori di memoria
Il più importante di questi è il rilevatore di errori di memoria che traccia l'uso di tutti i singoli bit all'interno di un programma e segnala le anomalie. Valgrind è in grado di scorgere se la memoria è usata prima di assumere un determinato valore, se fallata, o usata due volte.
Ciò lo rende ideale per la ricerca automatica di segmentation faults, errori sul bus e falle generiche in memoria.
Assicurarsi di avere installati i pacchetti con i simboli del debug. È possibile controllare tramite le seguenti istruzioni [:Debug].
Installare Valgrind:
sudo apt-get install valgrind
Rimuovere i log obsoleti:
rm valgrind.log.*
Avviare il programma sotto il controllo di memcheck:
G_SLICE=always-malloc G_DEBUG=gc-friendly valgrind -v --tool=memcheck --leak-check=full --num-callers=40 --log-file=valgrind.log <program> <arguments>
Il programma si avvierà. Compie qualsiasi azione necessaria per riprodurre il crash.
Creare un archivio contenente i file di log (ovviamente non e' necessario se il file è singolo):
tar -zcf valgrind-logs-<program>.tar.gz valgrind.log.*
Allegare l'output completo di Valgrind, contenuto in valgrind-logs-<program>.tar.gz, nel bug report.
Ulteriori informazioni
[https://wiki.ubuntu.com/Valgrind Documento originale]