modsætning nyere programmeringssprog såsom Java og Python, programmeringssprog som C kræver programmøren at styre sin egen hukommelse . C tilbyder faciliteter til at anmode om ledig hukommelse og returnere det til operativsystemet , men intet mere. Fordi sprog som C tilbyder ingen garbage collection mekanisme til at rense ud objekter, der er ikke længere er i brug, skal programmøren være på vagt og fjerne objekter , når de ikke længere er nødvendige . Hvis et program ikke slippe af sine uudnyttede genstande , kan den deraf memory leak medføre, at operativsystemet til at gå ned . Instruktioner
1
Installer " Valgrind " debugging suite.
Valgrind pakke er frit tilgængelig på alle Linux-distributioner. For at installere det på Debian -afledte distributioner som Ubuntu , skal du skrive " sudo apt- get install valgrind . " På RedHat eller Fedora, "install sudo yum valgrind . " Type
2
Kompiler dit program med fejlsøgningssymboler .
P mest almindelige compiler til C- programmer på Linux-systemer er gcc . Brug " - g " flag for at instruere gcc at omfatte fejlsøgningssymboler i binære , at det skaber . ( Fejlsøgningssymboler er nødvendige for debuggers som valgrind at henvise til specifikke problemer i din kode ) .
P Hvis du har et C-program ved navn " memoryhog.c ". for eksempel, ville du kompilere det ved hjælp af denne kommando: gcc- g memoryhog.c
3
Kør dit program binære gennem Valgrind
Medmindre du fortæller det ellers , gcc . vil navngive dit program " a.out ". For at køre din binære hedder " a.out " ved hjælp Valgrind skrive denne kommando : . Valgrind - lækage -check = fuld - show- nås = ja /a.out
4
Efterse output af Valgrind
Hvis alle memory leaks er blevet fastsat , Valgrind rapporter " alle bunke blokke blev løsladt - . ingen utætheder er muligt".
p Hvis nogen memory leaks er til stede , Valgrind lister linjenummer , hvor lækagen er oprettet.