Memory Leaks aufspüren



  • Hallo,
    im Moment bin ich auf der Suche nach einem Tool, oder einer Bibliothek die mir das Aufspüren von Memory Leaks erleichtert. Da ich ein wenig viel mit Threads und diversen Pointern jongliere und offenbar hin und wieder etwas unsauber übrigbleibt (Speicherbedarf steigt kontinuierlich langsam an) würde ich gern auf diese Weise einmal den Speicher beobachten.

    Edit: Ich arbeite unter Windows, kein VisualC++ 😉

    Vielleicht hat ja jemand eine Idee
    Viele Grüße, Sigmatix


  • Mod

    valgrind sollte auch mit Threads umgehen koennen.

    Da dir diese Antwort aber vermutlich ueberhaupt nichts bringt, waere es gut, wenn du sagst, fuer welches System du entwickelst.

    Ausserdem hast du gerade in C++ ganz tolle Moeglichkeiten, die Speicherverwaltung so zu organisieren, dass Speicherloecher gar nicht erst auftreten koennen. Mit Pointern jonglieren zaehlt sicherlich nicht dazu. Ist das wirklich noetig? (Tipp: Wenn du nicht ganz exotische Sachen machst, ist die Antwort da drauf Nein)



  • Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C++ (auch C++0x) in das Forum Rund um die Programmierung verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • sigmatix schrieb:

    Hallo,
    im Moment bin ich auf der Suche nach einem Tool, oder einer Bibliothek die mir das Aufspüren von Memory Leaks erleichtert.

    Diese tools nennen sich Profiler. Unter dem Stichwort wirst du sicherlich bei google fündig.

    Da ich ein wenig viel mit Threads und diversen Pointern jongliere und offenbar hin und wieder etwas unsauber übrigbleibt

    Dann benutz lieber smart-pointer statt irgendwelcher roher Pointer, die dann ihren Speicher traurig in der gegend rumstehen lassen.

    (Speicherbedarf steigt kontinuierlich langsam an)

    Da du Profiler noch nicht zu kennen scheinst, nehme ich mal an, dass du den Anstieg des Speicherbedarfs im Windows Taskmanager oder ähnlichem beobachtest. Das ist kein verlässliches Tool, sprich, es zeigt dir irgendwas an, aber mit Sicherheit nicht den tatsächlichen Speicherbedarf deines Programms.



  • Danke schonmal,
    dachte bislang man nutzt Profiler für Programmoptimierung bezüglich von Laufzeiten, etwa Berechnungsroutinen oder ähnlichem. Wenn mein Problem dadurch auch abgedeckt wird, dann wäre das vorteilhaft. Genauer hab ich mich damit demnach auch noch nicht beschäftigt, werde ich mir anschauen.

    Dass der Task-Manager keine Hilfe sei, mhm. Was nutzt du, ohne gleich zu profilen?
    Mfg



  • sigmatix schrieb:

    dachte bislang man nutzt Profiler für Programmoptimierung bezüglich von Laufzeiten, etwa Berechnungsroutinen oder ähnlichem.

    Profiler decken häufig mehrere Dinge ab, nicht nur Laufzeitkosten, sondern auch memory leak detection, Anzeige von Zugriffen auf uninitialisierten oder schon freigegebenen Speicher und ähnliches.

    Dass der Task-Manager keine Hilfe sei, mhm. Was nutzt du, ohne gleich zu profilen?

    Wenn bei meinem Rechner der Speicherverbrauch durch die Decke geht, schau ich natürlich in den Taskmanager, welches Programm dass sein könnte. Wenns denn mein Programm ist, dann jage ichs durch den Profiler. Ein stetiger leichter Anstieg des angezeigten Speicherverbrauchs im Taskmanager ist aber kein verlässliches Zeichen für Speicherlecks.


Anmelden zum Antworten