Diferentemente das linguagens de programação mais recentes como Java e Python , linguagens de programação como C exigem que o programador de gerir a sua própria memória . C oferece facilidades para solicitar memória livre e devolvê-lo para o sistema operacional, mas nada mais. Porque linguagens como C não oferecem nenhum mecanismo de coleta de lixo para limpar os objetos que não estão mais em uso, o programador deve ser vigilante e remover objetos quando eles não são mais necessários . Se um programa não se livrar de seus objetos não utilizados , o vazamento de memória resultante pode fazer com que o sistema operacional para funcionar. Instruções
1
Instalar os " valgrind " depuração suite.
O pacote valgrind está disponível gratuitamente em todas as distribuições Linux. Para instalá-lo em distribuições derivadas do Debian como o Ubuntu , digite " sudo apt- get install valgrind . " No RedHat ou Fedora , digite " sudo yum install valgrind . "
2
compilar seu programa com símbolos de depuração .
O compilador mais comum para programas em C em sistemas Linux é o gcc . Use o flag " - g" para instruir gcc para incluir símbolos de depuração para o binário que ele cria . ( Símbolos de depuração são necessários para depuradores como valgrind para se referir a problemas específicos em seu código ) .
Se você tem um programa em C com o nome " memoryhog.c ". por exemplo , você compilá-lo usando este comando: gcc- g memoryhog.c
3
Execute binário do seu programa através valgrind
A menos que você diga a ele de outra forma , gcc . vou citar o seu programa " a.out ". Para executar o binário chamado " a.out " usando valgrind , digite o seguinte comando: . Valgrind - check- vazamento = full - show- alcançável = yes /a.out
4
Inspecione a saída de valgrind
Se todos os vazamentos de memória foram corrigidos , valgrind relatórios " Todos os blocos de heap foram libertados - . nenhum vazamento é possível" .
Se quaisquer vazamentos de memória estão presentes, valgrind lista o número da linha em que o vazamento é criado.