Når et dataprogram trenger å lagre informasjon , det første må allokere minne . Etter at dataene er ikke lenger nødvendig, deallocates programmet minnet slik at et annet program kan gjøre bruk av den . Hvis et program tildeler minne uten deallocating minnet etterpå , vil det programmet blitt en belastning på systemressurser. Disse feilene er kalt " minnelekkasjer " og bli kvitt dem er en viktig del av debugging . Prosessen
Uansett hvilket språk programmet er skrevet i , er den grunnleggende prosess for å finne minnelekkasjer det samme. Først må minnet lekkasje som skal detekteres . En minnelekkasje indikeres vanligvis av lineært økende minnebruk, selv om noen spesialiserte verktøy kan fortelle deg direkte hvor mye minne et program har bevilget eller deallocated . Når en minnelekkasje oppdages det må isoleres . Dette gjøres ved å teste hver funksjon eller objekt separat for å bestemme hvor lekkasjen er oppstått . Da programmerer må finne ut av feilen som er årsaken til lekkasjen og rette det opp.
C /C + +
Programmer skrevet i C og C + + er beryktet for å ha minne lekkasjer fordi brukeren må manuelt fordele og deallocate minnet ved hjelp av malloc kommando. Den ccmalloc verktøyet overvåker malloc funksjon og rapporter hva minne ble ikke deallocated ble deallocated flere ganger eller til og med tildelt uten å ha blitt deallocated i første omgang . Andre mer spesialiserte programmer som NJAMD ( " Not Just Another malloc Debugger ") også eksisterer for å finne minnelekkasjer i C og C + + .
MSDN
Utviklere ved hjelp av Microsofts utviklingsmiljø kan bruke ml kommandoen for å finne minnelekkasjer . Skrive ml på Cesh prompt vil få opp en liste over alle program som kjører og hvor mye minne som brukes , skrevet som "r /w = " etterfulgt av antall sider som programmet har bevilget . Uventede økninger i minnebruk tyde på at programmet har en minnelekkasje .
Java
Mange programmerere tror at Java-programmer er immune mot minnelekkasjer fordi programmereren er ikke ansvarlig for tildeling og deallocating minne, men de har fortsatt dukker opp . Java virtuell maskin , miljø som implementerer Java- programmer, har en automatisk garbage collector som deallocates minnet når den ikke lenger er referert til av andre klasser . Minnelekkasjer kan oppstå når minnet blir referert når det ikke lenger er nødvendig , slik at den som skal hoppes over av søppel samler . Jprobe er en debugger som kan ta øyeblikksbilder av minnebruk som et Java-program kjører , hjelpe programmerere å finne kilden til en minnelekkasje .