In tegenstelling tot nieuwere programmeertalen zoals Java en Python , programmeertalen zoals C vereisen de programmeur om zijn eigen geheugen te beheren . C biedt faciliteiten om geheugen vrij te vragen en terug te sturen naar het besturingssysteem , maar niets meer . Omdat talen zoals C bieden geen garbage collection mechanisme voor het reinigen van objecten die niet meer in gebruik zijn , moet de programmeur waakzaam en verwijder objecten wanneer ze niet meer nodig zijn . Als een programma niet te ontdoen van haar ongebruikte objecten , kan de resulterende geheugenlek veroorzaken het besturingssysteem crasht. Instructies 1 Installeer de " valgrind " debugging suite . De valgrind pakket is vrij beschikbaar op alle Linux distributies . Om het op Debian - afgeleide distributies zoals Ubuntu installeren , typt u " sudo apt - get install valgrind . " Op RedHat of Fedora , type " sudo yum install valgrind . " Kopen van 2 Stel uw programma samen met debugging symbolen. De meest voorkomende compiler voor C -programma's op Linux -systemen is gcc . Gebruik de " - g" vlag om gcc te instrueren om debugging symbolen zijn in de binaire die het creëert . ( Debugging symbols zijn nodig voor debuggers zoals valgrind te verwijzen naar specifieke problemen in de code ) . Als je een C -programma genaamd " memoryhog.c . " bijvoorbeeld , zou je het compileren met het commando: gcc - g memoryhog.c 3 Run binaire uw programma 's via valgrind Tenzij je het anders vertellen , gcc . zal de naam van uw programma " a.out . " Om uw binary met de naam " a.out " met valgrind uitvoeren, typt u deze opdracht : . Valgrind - lek - check = full - toon- bereikbaar = yes /a.out 4 Inspecteer de uitgang van valgrind Als al het geheugen lekken zijn vastgesteld , valgrind rapporten " Alle hoop blokken werden bevrijd - . geen lekken zijn mogelijk " . Als er geheugen lekken aanwezig zijn , valgrind geeft de lijnnummer waarop het lek is ontstaan .
|