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 5 e 6
Versione 5 del 29/06/2007 11.17.22
Dimensione: 2013
Commento:
Versione 6 del 29/06/2007 13.32.36
Dimensione: 1985
Commento: accentate; piccole modifiche
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 1: Linea 1:
## page was renamed from MatLab
Linea 6: Linea 5:
= Cos'e' Valgrind = = Introduzione =
Linea 8: Linea 7:
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. '''Valgrind''' è una suite costituita da strumenti per il ''debugging'' e da programmi di ''profiling''. Ci sono tre strumenti:
Linea 10: Linea 9:
Riguardo il debugging, il rilevatore di errori di memoria e' un tool molto pratico.  * un rilevatore di errori di memoria;
 * un ''time profiler'';
 * uno ''space profiler''.

Riguardo il debugging, il rilevatore di errori di memoria è uno strumento molto pratico.
Linea 14: Linea 17:
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 di assumere un determinato valore, memoria e' fallata, o la memoria e' usata due volte. 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.
Linea 16: Linea 19:
Cio' lo rende ideale per la ricerca automatica di segmentation faults, errori sul bus e falla generiche in memoria. Ciò lo rende ideale per la ricerca automatica di ''segmentation faults'', errori sul bus e falle generiche in memoria.
Linea 18: Linea 21:
Assicurarsi di avere installati i pacchetti con i simboli del debug. E' possibile controllare tramite le seguenti istruzioni [:Debug]. Assicurarsi di avere installati i pacchetti con i simboli del debug. È possibile controllare tramite le seguenti istruzioni [:Debug].
Linea 20: Linea 23:
 1. Assicurarsi che Valgrid sia installato {{{  0. Installare Valgrind: {{{
Linea 23: Linea 26:
 1. Rimuovere i log obsoleti: {{{
0. Rimuovere i log obsoleti: {{{
Linea 26: Linea 30:
 1. Avviare il programma sotto il controllo di `memcheck`: {{{  
 0
. Avviare il programma sotto il controllo di '''memcheck''': {{{
Linea 29: Linea 34:
 1. Il programma si avviera'. Compie qualsiasi azione necessaria per riprodurre il crash.
 1. Creare un archivio contenente i file di log (ovviamente non e' necessario se il file e' singolo): {{{
 
 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): {{{
Linea 33: Linea 40:
 1. Allegare l'output completo di Valgrind, contenuto in valgrind-logs-<program>.tar.gz, nel bug report.  
 0
. Allegare l'output completo di Valgrind, contenuto in valgrind-logs-<program>.tar.gz, nel bug report.
Linea 38: Linea 46:
* [https://wiki.ubuntu.com/Valgrind Documento originale]

----------
 * [https://wiki.ubuntu.com/Valgrind Documento originale]
----

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;
  • un time profiler;

  • uno space profiler.

Riguardo il debugging, il rilevatore di errori di memoria è uno strumento molto pratico.

Rilevatore errori di memoria

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.

Ciò lo rende ideale per la ricerca automatica di segmentation faults, errori sul bus e falle generiche in memoria.

Assicurarsi di avere installati i pacchetti con i simboli del debug. È possibile controllare tramite le seguenti istruzioni [:Debug].

  1. Installare Valgrind:

    sudo apt-get install valgrind
  2. Rimuovere i log obsoleti:

    rm valgrind.log.*
  3. 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>
  4. Il programma si avvierà. Compie qualsiasi azione necessaria per riprodurre il crash.

  5. Creare un archivio contenente i file di log (ovviamente non e' necessario se il file è singolo):

    tar -zcf valgrind-logs-<program>.tar.gz valgrind.log.*
  6. Allegare l'output completo di Valgrind, contenuto in valgrind-logs-<program>.tar.gz, nel bug report.

Ulteriori informazioni


CategoryNuoviDocumenti