Dator > hur man hittar en minnesläcka i linux

  • hur man hittar en minnesläcka i linux


  • 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


  • Om du är villig att installera minne-debugging krokar i koden , då mtrace verktyget kan ge liknande egenskaper valgrind .
  • minnesläckor utgör endast en klass i programmering bugg . Din kod kan vara fri från minnesläckor samtidigt lider av prestandaproblem eller säkerhetshål .

Previous:nothing Next:Hur man laddar ner en fil i php





Relaterade artiklar


  • JavaScript nätet tutorial
  • hur man kan inreda rack vägg tallrik
  • hur man växla divar med javascript
  • hur man skapar med Visual Basic
  • hur man kopplar SQL-frågor med Visual Basic
  • vad är meningen med skriptspråk ?
  • hur man fixar upp och ner java bilder
  • sql CROSS JOIN tutorial
  • Audio & Video format : vad de betyder
  • hur man skapar xls med javascript