Speicherleck finden

05/02/2010 - 01:27 von JURKSCH | Report spam
Hallo,

bei einem meiner C++-Programme (und nur bei diesem), das keine systemnahen
Funktionen, sondern nur STL und Ausgaben auf cout verwendet, wird der
freie Speicher meiner Rechner gemàß /proc/meminfo mit konstanter
Geschwindigkeit (von weniger als 1 GB/Tag) immer kleiner (bis zum
Einfrieren), obwohl das Programm eigentlich in konstantem Speicher laufen
sollte, was auch die Ausgabe von top bzgl. Speicher zu bestàtigen scheint.
Auf der tiefsten Rekursions-stufe habe ich daher eine periodische Ausgabe
von arena (struct mallinfo aus mallinfo()) und der Adresse einer
automatischen Variable eingebaut. Beide Werte bleiben wie erwartet
zeitlich konstant, d.h. es ergibt sich kein Anhaltspunkt für stàndig
allozierten und nicht freigegebenen Speicher oder ein klammheimliches
Anwachsen des Stacks.
Daher bin ich recht ratlos, wo ich mit der Suche nach meinem geklauten
Speicher anfangen soll.
Wo könnte ich mit welchen Werkzeugen noch suchen?

MfG
Hermann
 

Lesen sie die antworten

#1 Edzard Egberts
05/02/2010 - 10:53 | Warnen spam
Am 05.02.2010 01:27, schrieb Hermann Jurksch:
bei einem meiner C++-Programme (und nur bei diesem), das keine systemnahen
Funktionen, sondern nur STL und Ausgaben auf cout verwendet, wird der
freie Speicher meiner Rechner gemàß /proc/meminfo mit konstanter
Geschwindigkeit (von weniger als 1 GB/Tag) immer kleiner

Wo könnte ich mit welchen Werkzeugen noch suchen?



Das Standardwerkzeug für so etwas ist eigentlich Valgrind
http://valgrind.org, das sollte auch im Repository sein.

HTH,

Ed

Ähnliche fragen