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 1 e 2
Versione 1 del 29/06/2007 10.36.11
Dimensione: 1667
Commento:
Versione 2 del 29/06/2007 11.00.59
Dimensione: 1884
Commento:
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 6: Linea 6:
Valgrind is a suite of tools for debugging and profiling programs. There are three tools: a memory error detector, a time profiler, and a space profiler. 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.
Linea 8: Linea 8:
For debugging purposes, the memory error detector is a handy tool. Riguardo il debugging, il rilevatore di errori di memoria e' un tool molto pratico.
Linea 10: Linea 10:
= Memory error detection = = Rilevatore errori di memoria =
Linea 12: Linea 12:
The most important of these is the memory error detector, which tracks the usage of every single bit in a program, and warns if there's something suspicious. Valgrind can detect if memory is used before it has a value, memory is leaked, or memory is used twice. 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 can detect if memory is used before it has a value, memoria e' fallata, or la memoria e' usata due volte.
Linea 14: Linea 14:
This makes it ideal for tracking down segmentation faults, bus errors, and general memory leaks. Cio' lo rende ideale per la ricerca automatica di segmentation faults, errori sul bus e falla generiche in memoria.
Linea 16: Linea 16:
Please ensure you have packages with debug symbols installed. You can do this by following the instructions at DebuggingProgramCrash. Assicurarsi di avere installati i pacchetti con i simboli del debug. E' possibile controllare tramite le seguenti istruzioni DebuggingProgramCrash.
Linea 18: Linea 18:
 1. Make sure Valgrind is installed. {{{  1. Assicurarsi che Valgrid sia installato {{{
Linea 21: Linea 21:
 1. Remove any old Valgrind logs: {{{  1. Rimuovere i log obsoleti: {{{
Linea 24: Linea 24:
 1. Start the program under control of `memcheck`: {{{  1. Avviare il programma sotto il controllo di `memcheck`: {{{
Linea 27: Linea 27:
 1. The program will start.  Perform any actions necessary to reproduce the crash
 1. Package up the log files (no need if there is only one): {{{
 1. Il programma si avviera'. Perform any actions necessary to reproduce the crash
 1. Creare un archivio contenente i file di log (ovviamente non e' necessario se il file e' singolo): {{{
Linea 31: Linea 31:
 1. Attach the complete output from Valgrind, contained in valgrind-logs-<program>.tar.gz, in your bug report.  1. Allegare l'output completo di Valgrind, contenuto in valgrind-logs-<program>.tar.gz, nel bug report.

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.

Riguardo il debugging, il rilevatore di errori di memoria e' un tool molto pratico.

Rilevatore errori di memoria

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 can detect if memory is used before it has a value, memoria e' fallata, or la memoria e' usata due volte.

Cio' lo rende ideale per la ricerca automatica di segmentation faults, errori sul bus e falla generiche in memoria.

Assicurarsi di avere installati i pacchetti con i simboli del debug. E' possibile controllare tramite le seguenti istruzioni DebuggingProgramCrash.

  1. Assicurarsi che Valgrid sia installato

    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 avviera'. Perform any actions necessary to reproduce the crash
  5. Creare un archivio contenente i file di log (ovviamente non e' necessario se il file e' 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.