|
Dimensione: 1985
Commento: accentate; piccole modifiche
|
← Versione 18 del 14/03/2011 12.50.48 ⇥
Dimensione: 2118
Commento: converted to 1.6 markup
|
| Le cancellazioni sono segnalate in questo modo. | Le aggiunte sono segnalate in questo modo. |
| Linea 1: | Linea 1: |
| ## page was renamed from Valgrind | |
| Linea 3: | Linea 4: |
| ||<tablestyle="float:right; font-size: 0.9em; width:30%; background:#F1F1ED; margin: 0 0 1em 1em;" style="padding:0.5em;">'''Indice:'''[[BR]][[TableOfContents]]|| | <<BR>> <<Indice>> |
| Linea 9: | Linea 11: |
| * 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; |
| Linea 13: | Linea 13: |
| Riguardo il debugging, il rilevatore di errori di memoria è uno strumento molto pratico. | * un '''time profiler'''; |
| Linea 15: | Linea 15: |
| = Rilevatore errori di memoria = | * uno '''space profiler'''. |
| Linea 17: | Linea 17: |
| 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. | Riguardo il ''debugging'', il rilevatore di errori di memoria è uno strumento molto pratico. |
| Linea 19: | Linea 19: |
| Ciò lo rende ideale per la ricerca automatica di ''segmentation faults'', errori sul bus e falle generiche in memoria. | = Preparativi = |
| Linea 21: | Linea 21: |
| Assicurarsi di avere installati i pacchetti con i simboli del debug. È possibile controllare tramite le seguenti istruzioni [:Debug]. | Prima di procedere assicurarsi di avere installato i pacchetti con i simboli del [[Programmazione/Debug|debug]]. |
| Linea 23: | Linea 23: |
| 0. Installare Valgrind: {{{ sudo apt-get install valgrind |
= Installazione = Per installare il programma è sufficiente digitare [[AmministrazioneSistema/InstallareProgrammi|installare il pacchetto]] ''valgrind''. Terminata l'installazione non resta che rimuovere i log obsoleti. Digitare il seguente comando: {{{ rm valgrind.log.* |
| Linea 27: | Linea 32: |
| 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 39: |
| 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 [[AmministrazioneSistema/FormatiDiCompressione|compresso]] con il seguente comando: {{{ |
| Linea 41: | Linea 44: |
| 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 46: |
| = Ulteriori risorse = | |
| Linea 44: | Linea 48: |
| = Ulteriori informazioni = * [https://wiki.ubuntu.com/Valgrind Documento originale] |
* [[https://wiki.ubuntu.com/Valgrind|Documento originale]] |
| Linea 48: | Linea 50: |
| CategoryNuoviDocumenti | CategoryProgrammazione |
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.
Installazione
Per installare il programma è sufficiente digitare 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 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.
