Indice:BRTableOfContents |
Valgrind e' una suite di tool per il debugging e programmi di profiling. Ci sono tre tool: un rilevatore di errori di memoria, a time profiler, and a space profiler.
Riguardo il debugging, il rilevatore di errori di memoria e' un tool molto pratico.
Rilevatore errori di memoria
Il piu' importante di questi e' il rilevatore di errori di memoria, che traccia l'uso di tutti i singoli bit all'interno di un programma e in caso dovesse incontrare qualcosa di sospetto, lo segnala. Valgrind e' in grado di scorgere se la memoria e' usata prima can detect if memory is used before it has a value, memoria e' fallata, or la memoria e' usata due volte.
Cio' lo rende ideale per la ricerca automatica di segmentation faults, errori sul bus e falla generiche in memoria.
Assicurarsi di avere installati i pacchetti con i simboli del debug. E' possibile controllare tramite le seguenti istruzioni DebuggingProgramCrash.
Assicurarsi che Valgrid sia installato
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 avviera'. Perform any actions necessary to reproduce the crash
Creare un archivio contenente i file di log (ovviamente non e' necessario se il file e' 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.