Speicherlecks finden
Suchspiel
Speicherlecks beeinträchtigen die Performance von Programmen. Es gibt verschiedene Methoden, um sie zu aufzuspüren und Speicher richtig zu verwalten.
Häufig kommt es in C++-Applikationen vor, dass Speicher angefordert, aber nicht mehr freigegeben wird. Gerade bei Anwendungen, die über einen langen Zeitraum laufen und häufig Speicher anfordern und freigeben, können auch kleine Speicherlecks zu einem großen Problem werden – die automatische Freigabe des Speichers beim Schließen der Applikation ist dabei keine Option.
Die Idee der folgenden Analyse ist es, Speicherlecks zu finden. Zwei Iterationen sind dafür notwendig, die verschiedene Implementierungen der Operatoren new
und delete
verwenden. Im ersten Schritt wird geprüft, ob es im Code Speicherlecks gibt. In der zweiten Iteration gelingt es dann, die Speicherlecks exakt zu identifizieren. Das geht leider nicht ohne einen hässlichen Trick: ein Makro.