MSVC2005 Express: Nach Speicherlecks suchen (Profiler?)



  • Ich suche nach einer Möglichkeit, um meine Programme unter MSVC Express 2005 nach Speicherlecks zu durchsuchen, einem Profiler oder ähnliches. Oder gibt es bereits ein mitgeliefertes tool, das ich nur übersehen haben?



  • Du kannst meinen LeakFinder verwenden...
    http://blog.kalmbachnet.de/files/LeakFinder-RC5.zip

    Siehe auch:
    http://www.codeproject.com/tools/leakfinder.asp

    PS: In VC ist leider nix Sinnvolles eingebaut... (siehe auch Artikel)



  • Danke für Deine Antwort. Es ist ja besonders interessant, dass Du genau das gebastelt hast, was ich grade braucht. Aber ich habe ein einfaches Problem: Laut Anleitung muß einfach nur die "StackWalker.h" eingebunden werden (natürlich liegen StackWalker.h/.c beide im Projektverzeichnis) und dann die De/InitAllocCheck() aufgerufen werden. Der Compiler beschwert sich jedoch, dass es diese Methoden nicht gibt. Ich habe sie tatsächlich auch nicht gefunden ..



  • Du musst auch die cpp-Dateien einbinden...



  • Ich muß irgendwas wesentliches übersehen:
    In Deinem Tutorial steht, es müssten nur die Dateien StackWalker.h und StackWalker.cpp eingebunden werden, danach die Aufrufe von De/InitAllocCheck().
    Diese Methoden werden aber nicht gefunden (wo sind sie denn implementiert?). Zum Test habe ich auch gleich mal die Dateien LeakFinder.h und Leakfinder.cpp eingebunden, ebenso ohne Erfolg..



  • Serethos schrieb:

    Ich muß irgendwas wesentliches übersehen:
    In Deinem Tutorial steht, es müssten nur die Dateien StackWalker.h und StackWalker.cpp eingebunden werden, danach die Aufrufe von De/InitAllocCheck().

    Das Problem liegt nicht bei Dir, sondern an der Divergenz zwischen dem Artikel (schon relativ alt) und meinem *neuen* Leakfinder...
    Der neue Leakfinder benötigt "Stackwalker.cpp" *und* "Leakfinder.cpp"...

    Serethos schrieb:

    Diese Methoden werden aber nicht gefunden (wo sind sie denn implementiert?). Zum Test habe ich auch gleich mal die Dateien LeakFinder.h und Leakfinder.cpp eingebunden, ebenso ohne Erfolg..

    Hmm... das Demo-Projekt geht aber, oder???



  • Ja, das Demo Projekt geht, aber es benutzt auch nicht die Funktionen De/InitAllocCheck(), sondern nur anfangs DoCoMalloc(). Ist diese das Äquivalent? (keine Aufräumfunktion notwendig?)



  • Naja, es verwendet schon die De/InitLeakFinder Funktionen... nur indirekt via "INIT_LEAK_FINDER" define...



  • Ahh, hat ein bisschen gedauert, bis ich begriffen habe, dass die Funktionen veraltet sind und alles über das Makro geregelt wird. Jaja, Java-Programmierer nix kennt Makros ..
    Jetzt muß ich nur noch den Output interpretieren .. 😃


Log in to reply