A differenza dei linguaggi di programmazione più recenti come Java e Python , linguaggi di programmazione come C richiedono al programmatore di gestire la propria memoria. C fornisce servizi a richiesta di memoria libera e tornare al sistema operativo , ma niente di più . Perché linguaggi come C offrono alcun meccanismo di garbage collection per pulire gli oggetti che non sono più in uso , il programmatore deve essere vigile e rimuovere oggetti quando non sono più necessari . Se un programma non si libera dei suoi oggetti inutilizzati , la perdita di memoria risultante può causare il crash del sistema operativo . Istruzioni 
 1 
 installare la suite di debug " valgrind " . 
 
 Il pacchetto valgrind è liberamente disponibile su tutte le distribuzioni Linux . Per installarlo sulle distribuzioni derivate da Debian come Ubuntu , digitare "sudo apt- get install valgrind . " Su RedHat o Fedora , digitare " sudo yum install valgrind . " 
 2 
 compilare il programma con i simboli di debug . 
 
 Il compilatore più comune per programmi C su sistemi Linux è gcc . Utilizzare il flag " - g" per istruire gcc per includere simboli di debug nel binario che esso crea . ( Simboli di debug sono necessari per il debugger come valgrind per riferirsi a problemi specifici nel codice ) . 
 
 Se si dispone di un programma C denominato " memoryhog.c . " per esempio , si potrebbe compilarlo con questo comando : gcc- g memoryhog.c 
 3 
 Run binaria del programma attraverso valgrind 
 
 A meno che non gli si dice altrimenti , gcc . sarà il nome tuo " a.out ". programma Per eseguire il binario chiamato " a.out " utilizzando valgrind , digitare questo comando : . Valgrind - leak- check = pieno - show- raggiungibile = yes /a.out 
 4 
 Ispezionare l'output di valgrind 
 
 Se sono stati risolti tutti i problemi di memoria , i rapporti valgrind " Tutti i blocchi di heap sono stati liberati - . perdite sono possibili " . 
 
 eventuali perdite di memoria sono presenti, valgrind elenca il numero di linea su cui viene creata la perdita.