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 7
Versione 6 del 29/06/2007 13.32.36
Dimensione: 1985
Commento: accentate; piccole modifiche
Versione 7 del 30/06/2007 17.37.05
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 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 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 =

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


CategoryNuoviDocumenti