VS2008 Memory Leaks
-
Ich versuche hier in einer threaded Application Memory Leaks zu finden.
Leider erweist sich das unter Windows mit VS2008 nicht als trivial.Das MSDN empfiehlt ein paar Defines, die leider nicht das gewünschte Resultat bringen. Entweder werden keine ZeilenNummern angezeigt, Zeilen aus der crtdb.h oder die Zeile meines custom-Defines im Header-File, exemplarisch :
#define Debug_New new(s, __Line__, ... )Ich suche einen Weg Memory Leaks unter Win32 effizient zu finden. Dabei kann es sich um ein externes Tool oder Plugin für VS2008 handeln. VLD hat bei mir auch nicht funktioniert.
Danke für echte Hilfe
-
Wenn es sich um einzelne Leaks handelt, die regelmässig unter der gleichen ID auftreten dann ist _CrtSetBreakAlloc ein guter Trick.
Ansonsten hast Du diesen define auch früh genug gesetzt?
Ansonsten:
http://www.codeproject.com/KB/applications/leakfinder.aspx
-
Wenn ich das zitierte Define benutze sehe ich auch nur die Zeile des Defines selbst.
Mein Problem ist eher, dass Objekte nicht vernünftig gelöscht werden. Im abgespeckten Single-Threaded-Fall ist inzwischen alles sauber.
Hätte gehofft mir kann jemand sowas wie "ValGrind-Win32" empfehlen ...
-
Nimm meinen LeakFinder, der zeigt Dir den gesamten Callstack der Allocation an.
http://blog.kalmbachnet.de/files/LeakFinder-RC8.zip
-
Dein define ist auch falsch. Das fällt mir jetzt erst auf, es muss heißen:
#define new DEBUG_NEW