I motsetning til nyere programmeringsspråk som Java og Python , programmeringsspråk som C kreve programmerer å administrere sin egen hukommelse . C har funksjoner for å be om ledig minne og returnere det til operativsystemet, men ingenting mer. Fordi språk som C har ingen søppelrydding mekanisme for å rense ut objekter som ikke lenger er i bruk, må programmereren være årvåken og fjerne objekter når de ikke lenger er nødvendig . Hvis et program ikke kvitte seg med sine ubrukte gjenstander , kan den resulterende minnelekkasje føre til at operativsystemet krasjer. Instruksjoner
en
Installer " Valgrind " debugging suite.
Valgrind pakken er fritt tilgjengelig på alle Linux- distribusjoner . Å installere det på Debian -deriverte distribusjoner som Ubuntu , skriv " sudo apt- get install Valgrind . " På RedHat og Fedora , skriv " sudo yum installere Valgrind . "
2
kompilere programmet med debugging symboler.
Den vanligste kompilator for C-programmer på Linux-systemer er gcc . Bruk " -g" flagg for å instruere gcc å inkludere debugging symboler i det binære at det skaper . ( Debugging symboler er nødvendig for debuggers som Valgrind å referere til spesifikke problemer i koden ) .
P Hvis du har et C-program som heter " memoryhog.c . " for eksempel, ville du kompilere den ved hjelp av denne kommandoen : gcc - g memoryhog.c
3
Kjør programmet binær gjennom Valgrind
Med mindre du forteller det ellers, gcc . vil navnet ditt program " a.out . " Å kjøre binære heter " a.out " ved hjelp Valgrind , skriver denne kommandoen : . Valgrind - lekkasje -check = fullt - show- nås = ja /a.out
4
Inspiser utgang av Valgrind
p Hvis alle minnelekkasjer har blitt fikset , Valgrind rapporter " alle haug blokker ble frigjort - . ingen lekkasjer er mulig" .
p Hvis noen minnelekkasjer er til stede , viser Valgrind den linjenummer der lekkasjen er opprettet .