Dimensione: 1985
Commento: accentate; piccole modifiche
|
Dimensione: 2163
Commento: sistemata un po'
|
Le cancellazioni sono segnalate in questo modo. | Le aggiunte sono segnalate in questo modo. |
Linea 9: | Linea 9: |
* un rilevatore di errori di memoria; * un ''time profiler''; * uno ''space profiler''. |
* un '''rilevatore di errori di memoria''': ideale per la ricerca automatica dei ''segmentation faults'', degli errori sul bus e nella memoria, traccia l'uso di tutti i singoli bit nell'ambito dell'esecuzione di un programma e segnala le anomalie; il programma è in grado di scorgere se la memoria è usata prima di assumere un determinato valore, se fallata o usata due volte; * un '''time profiler'''; * uno '''space profiler'''. |
Linea 15: | Linea 17: |
= Rilevatore errori di memoria = | == Preparativi == |
Linea 17: | Linea 19: |
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. | Prima di procedere assicurarsi di avere installato i pacchetti con i simboli del [:Debug:debug]. |
Linea 19: | Linea 21: |
Ciò lo rende ideale per la ricerca automatica di ''segmentation faults'', errori sul bus e falle generiche in memoria. | == Installazione == |
Linea 21: | Linea 23: |
Assicurarsi di avere installati i pacchetti con i simboli del debug. È possibile controllare tramite le seguenti istruzioni [:Debug]. | Per installare il programma è sufficiente digitare [:InstallareProgrammi:installare il pacchetto] ''valgrind''. |
Linea 23: | Linea 25: |
0. Installare Valgrind: {{{ sudo apt-get install valgrind |
Terminata l'installazione non resta che rimuovere i log obsoleti. Digitare il seguente comando: {{{ rm valgrind.log.* |
Linea 27: | Linea 30: |
0. Rimuovere i log obsoleti: {{{ rm valgrind.log.* }}} 0. Avviare il programma sotto il controllo di '''memcheck''': {{{ |
== Avvio del programma e preparazione del materiale per il bug report == Per avviare il programma sotto il controllo di '''memcheck''' digitare il seguente comando: {{{ |
Linea 35: | Linea 37: |
0. Il programma si avvierà. Compie qualsiasi azione necessaria per riprodurre il ''crash''. 0. Creare un archivio contenente i file di log (ovviamente non e' necessario se il file è singolo): {{{ |
Una volta avviato il programma si potrà compiere qualsiasi azione necessaria per riprodurre il ''crash'', dunque non resterà che compattare i file di log in un archivio [:FormatiDiCompressione:compresso] con il seguente comando: {{{ |
Linea 41: | Linea 42: |
0. Allegare l'output completo di Valgrind, contenuto in valgrind-logs-<program>.tar.gz, nel bug report. | Ora sarà possibile allegare nel ''bug report'' l'output completo di '''valgrind''', contenuto nel file `valgrind-logs-<program>.tar.gz`. |
Linea 43: | Linea 44: |
= Ulteriori informazioni = |
= Ulteriori risorse = |
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: ideale per la ricerca automatica dei segmentation faults, degli errori sul bus e nella memoria, traccia l'uso di tutti i singoli bit nell'ambito dell'esecuzione di un programma e segnala le anomalie; il programma è in grado di scorgere se la memoria è usata prima di assumere un determinato valore, se fallata o usata due volte;
un time profiler;
uno space profiler.
Riguardo il debugging, il rilevatore di errori di memoria è uno strumento molto pratico.
Preparativi
Prima di procedere assicurarsi di avere installato i pacchetti con i simboli del [:Debug:debug].
Installazione
Per installare il programma è sufficiente digitare [:InstallareProgrammi:installare il pacchetto] valgrind.
Terminata l'installazione non resta che rimuovere i log obsoleti. Digitare il seguente comando:
rm valgrind.log.*
Avvio del programma e preparazione del materiale per il bug report
Per avviare il programma sotto il controllo di memcheck digitare il seguente comando:
G_SLICE=always-malloc G_DEBUG=gc-friendly valgrind -v --tool=memcheck --leak-check=full --num-callers=40 --log-file=valgrind.log <program> <arguments>
Una volta avviato il programma si potrà compiere qualsiasi azione necessaria per riprodurre il crash, dunque non resterà che compattare i file di log in un archivio [:FormatiDiCompressione:compresso] con il seguente comando:
tar -zcf valgrind-logs-<program>.tar.gz valgrind.log.*
Ora sarà possibile allegare nel bug report l'output completo di valgrind, contenuto nel file valgrind-logs-<program>.tar.gz.
Ulteriori risorse
[https://wiki.ubuntu.com/Valgrind Documento originale]