Når en computer program har brug for at lagre information , er det først nødvendigt at allokere hukommelse . Efter at data ikke længere er nødvendig, programmet deallocates hukommelsen, så et andet program kan gøre brug af det . Hvis et program allokerer hukommelse uden deallokere hukommelsen bagefter , vil dette program blive et dræn på systemressourcer. Disse fejl kaldes " memory leaks ", og komme af med dem er en vigtig del af debugging. Process
Uanset hvilket sprog programmet er skrevet i , den grundlæggende proces for at finde memory leaks er den samme. For det første memory leak skal detekteres . En hukommelsesfejl er normalt angivet ved lineært stigende hukommelsesforbrug , selv om nogle specialiserede værktøjer kan fortælle dig direkte hvor meget hukommelse et program har afsat eller deallokeret . Når en hukommelsesfejl opdages det skal isoleres . Dette gøres ved at teste hver funktion eller objekt separat for at bestemme, hvor lækagen er forekommende . Derefter skal programmøren finde ud af den specifikke fejl , der er årsag til lækagen og rette den.
C /C + +
programmer skrevet i C og C + + er berygtet for at have hukommelse lækager , fordi brugeren manuelt skal afsætte og deallocate hukommelse ved hjælp af malloc kommandoen . Den ccmalloc Værktøjet overvåger allokere funktion og rapporter hvilken hukommelse ikke blev deallokeret blev deallokeret flere gange eller endog tildeles uden at være blevet deallokeret i første omgang . Andre mere specialiserede programmer såsom NJAMD ("Not Just Another malloc Debugger "), findes også for at finde memory leaks i C og C + + .
MSDN
Developers bruger Microsofts udviklingsmiljø kan bruge ml kommandoen til at finde memory leaks . Typing ml på Cesh prompt vil bringe en liste over hver kørende program , og den mængde hukommelse , der bruges , skrives som "r /w = " efterfulgt af det antal sider, der ansøgningen har afsat . Uventede stigninger i hukommelse indikerer, at programmet har en hukommelsesfejl .
Java
Mange programmører tror, at Java-programmer er immune over for memory leaks , fordi programmøren ikke er ansvarlig for fordeling og deallokere hukommelse, men de stadig dukke op. Java virtuel maskine , miljø , der implementerer Java-programmer , har en automatisk affaldsindsamling der deallocates hukommelse, når den ikke længere refereres af andre klasser . Memory leaks kan opstå, når hukommelsen bliver refereres, når det ikke længere er nødvendigt , får det til at blive sprunget over ved affaldsindsamling . Jprobe er en debugger , der kan tage snapshots af hukommelsesforbrug som et Java-program kører , hjælper programmører til at finde kilden til en hukommelsesfejl .