Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati
  • Differenze per "Programmazione/Valgrind"
Differenze tra le versioni 6 e 18 (in 12 versioni)
Versione 6 del 29/06/2007 13.32.36
Dimensione: 1985
Commento: accentate; piccole modifiche
Versione 18 del 14/03/2011 12.50.48
Dimensione: 2118
Autore: localhost
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 v
algrind.log.*
}}}
 
 0. A
vviare il programma sotto il controllo di '''memcheck''': {{{
= Avvio del programma e preparazione del materiale per il bug report =

P
er 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.

Ulteriori risorse


CategoryProgrammazione