iX 3/2020
S. 132
Praxis
C++-Tricks

Speicherlecks finden

Suchspiel

Rainer Grimm

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++-Applika­tionen 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 automa­tische 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.

Kommentieren