Speicherleckdetektoren für C?

Lesezeit: 2 Minuten

Mit welchen Speicherlecksuchern haben die Leute gute Erfahrungen gemacht?

Hier eine Zusammenfassung der bisherigen Antworten:

Valgrind – Instrumentierungsrahmenwerk zum Aufbau dynamischer Analysewerkzeuge.

Elektrozaun – Ein Tool, das mit GDB funktioniert

Schiene – Anmerkungsgestützte leichte statische Überprüfung

Glühcode – Dies ist ein vollständiger Echtzeit-Leistungs- und Speicher-Profiler für Windows- und .NET-Programmierer, die Anwendungen mit C++, C# oder einem beliebigen .NET-Framework entwickeln

Siehe auch diesen Stackoverflow-Beitrag.

zweite die Valgrind… und ich füge hinzu Elektrozaun.

  • Elektrozaun dient nicht dazu, Speicherlecks aufzudecken.

    – fuenfundachtzig

    4. August 2017 um 13:02 Uhr

Benutzer-Avatar
hazz

Valgrind unter Linux ist ziemlich gut; Unter Windows habe ich damit keine Erfahrung.

Wenn du das Geld hast: IBM Rational Purify ist ein extrem leistungsfähiger Speicherleck- und Speicherbeschädigungsdetektor für C/C++. Existiert für Windows, Solaris und Linux. Wenn Sie nur Linux sind und eine günstige Lösung suchen, entscheiden Sie sich für Valgrind.

  • Was macht Purify, was Valgrind nicht tut? Als ich Purify das letzte Mal ausprobiert habe, war es wirklich mühsam, es einzurichten und etwas daraus zu machen, außerdem musste man mit ihrem Compiler kompilieren. Valgrind verwendet Ihren normalen Debug-Build.

    – Gulden

    22. Oktober 2008 um 23:42 Uhr

  • Beachten Sie, dass purify an UNICOM Systems verkauft wurde unicomsi.com/products/purifyplus

    – djsadinoff

    7. Oktober 2015 um 5:41 Uhr

Schmutzfänger für gcc! Es kompiliert die Prüfungen tatsächlich in die ausführbare Datei. Einfach hinzufügen

-fmudflap -lmudflap

zu Ihren gcc-Flags.

Benutzer-Avatar
Ben Collins

lint (sehr ähnliches Open-Source-Tool namens Schiene)

  • Besonders bei Splint geht es nicht so sehr um Undichtigkeiten.

    – 0xC0000022L

    23. Mai 2011 um 15:41 Uhr

Benutzer-Avatar
Ben Combee

Es lohnt sich auch, den integrierten Debug-Heap-Code zu verwenden, wenn Sie unter Linux glibc verwenden. Um es zu verwenden, verlinken Sie mit -lmcheck oder definieren (und exportieren) Sie die MALLOC_CHECK_ Umgebungsvariable mit dem Wert 1, 2 oder 3. Das glibc-Handbuch bietet weitere Informationen.

Dieser Modus ist am nützlichsten zum Erkennen von Double-Frees und findet häufig Schreibvorgänge außerhalb des zugewiesenen Speicherbereichs, wenn ein Free durchgeführt wird. Ich glaube nicht, dass es Speicherlecks meldet.

  • Besonders bei Splint geht es nicht so sehr um Undichtigkeiten.

    – 0xC0000022L

    23. Mai 2011 um 15:41 Uhr

Ich hatte einige Hits mit cppcheck, die nur statische Analysen durchführt. Es ist Open Source und hat eine Befehlszeilenschnittstelle (ich habe es nicht auf andere Weise verwendet).

  • +1 für cppcheck – nicht verwendet, dass man so nachsehen wird; Die wichtige Empfehlung ist die Statische Analyse

    – Andreas

    22. September 2012 um 5:04 Uhr

1384630cookie-checkSpeicherleckdetektoren für C?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy