Till skillnad från nyare programmeringsspråk som Java och Python , programspråk som C kräver programmeraren att hantera sitt eget minne . C ger möjligheter att begära ledigt minne och returnera den till operativsystemet men inget mer . Eftersom språk som C erbjuder ingen mekanism sophämtning för att rensa ut objekt som inte längre är i bruk , måste programmeraren vara vaksamma och ta bort objekt när de inte längre behövs. Om ett program inte bli av med sin oanvända objekt , kan de resulterande minnesläcka få operativsystemet att krascha .
1 .
Installera ” valgrind ” felsökning svit .
valgrind paket är fritt tillgänglig på alla Linux-distributioner. För att installera det på Debian-härledda distributioner som Ubuntu , skriv ” sudo apt-get install valgrind . ” På RedHat eller Fedora , skriv ” sudo yum install valgrind . ”
2 .
Kompilera programmet med avlusningssymboler .
Den vanligaste kompilator för C -program på Linux -system är GCC . Använd ”-g ” flaggan för att ge gcc att inkludera avlusningssymboler i binär att det skapar . ( Avlusningssymboler är nödvändiga för debuggers som valgrind hänvisa till särskilda problem i din kod ) .
Om du har ett C- program som heter ” memoryhog. c . ” Till exempel skulle du kompilerar det med följande kommando: gcc-g memoryhog. c
3
Kör ditt program genom binära valgrind
.
såvida du inte annars kommer gcc namn ditt program ” a. out . ” För att köra binär heter ” a. ut ” med valgrind , skriver du: . . valgrind-läcka-check=full-show- nås=ja /a. out
4
Inspektera produktionen av valgrind
Om alla minnesläckor har fastställts , valgrind rapporter ”Alla heap block frigörs-inga läckage är möjligt ”.
Om några minnesläckor är närvarande, valgrind listor radnumret där läckan skapas.
tips och varningar
コメント