kaufen Gibt es Alternativen zu valgrind unter Mac OS X Mountain Lion und Mavericks, um Speicherverluste für C/C++-Anwendungen zu erkennen?




os x mavericks installieren (3)

Nur um zu wissen, dass Sie nicht lange warten müssen, um zu sehen, wie Valgrind auf Mac 10.9 aka Maverick arbeitet. Da laut diesem Fehlerbericht einige Erfolge erzielt wurden .

Meines Erachtens gibt es derzeit (Stand 15. November 2013) keine Valgrind-Alternativen für den Mac. Es gibt jedoch einiges zu beachten , nämlich Clang, das sowohl AddressSanitizer (funktioniert auf aktuellen Macs) als auch MemorySanitizer (Macs noch nicht unterstützt) unterstützt.

Es gibt Vorschläge für die Verwendung von Instrumenten von Xcode, aber ich fand es überhaupt nicht nützlich.

Ich habe valgrind , um Speicherverluste für meine C / C ++ - Anwendungen unter Mac OS X 10.6 (Snow Leopard) und 10.7 (Lion) zu erkennen. Ich finde jedoch, dass es in den letzten Versionen nicht unterstützt wird, wie 10.8 (Mountain Lion) und 10.9 (Mavericks). als ich mein Betriebssystem aktualisiert habe. Gibt es etwas anderes als valgrind , das unter Mac OS X 10.9 installiert werden kann?


Answer #1

Zusätzlich zu den Instrumenten, die @Charlie_Burns oben erwähnt hat, gibt es auch den statischen Analysator, der Sie über einige dieser Dinge informieren kann, indem Sie lediglich Ihren Code analysieren. Wählen Sie in Ihrem Xcode-Projekt einfach "Analysieren" aus dem Menü "Produkt". Es ruft den statischen Analysegerät clang . Ich denke, Sie können clang direkt von der Befehlszeile aus verwenden, wenn Sie möchten, obwohl ich das nicht getan habe.

In der Befehlszeile haben Sie auch Zugriff auf den Befehl leaks und den Befehl dtrace .


Answer #2

Am 2013-11-01 gab das valgrind Team Valgrind 3.9.0 bekannt:

Wir freuen uns, eine neue Version von Valgrind, Version 3.9.0, bekannt zu geben, die unter valgrind .

3.9.0 ist ein Feature-Release mit vielen Verbesserungen und der üblichen Sammlung von Fehlerbehebungen. Diese Version bietet Unterstützung für MIPS64 / Linux, Intel AVX2-Anweisungen und POWER8-Anweisungen. DFP-Unterstützung wurde für S390 hinzugefügt. Die anfängliche Unterstützung für Hardware-Transaktionsspeicher wurde für Intel- und POWER-Plattformen hinzugefügt. Die Unterstützung für Mac OS X 10.8 (Mountain Lion) wurde verbessert. Die Genauigkeit von Memcheck bei vektorisiertem Code wurde verbessert.

Es bleibt abzuwarten, ob die verbesserte Unterstützung für Mountain Lion für Mavericks gut funktioniert. Es wird jedoch erwähnt, dass die Unterstützung nur für 64-Bit-Code gilt.

[... die Zeit vergeht ... Downloads passieren ... Hoffnungen werden geweckt ... Konfiguration wird versucht ... Hoffnungen werden zerstört ...]

Urgh!

...
checking build system type... x86_64-apple-darwin13.0.0
checking host system type... x86_64-apple-darwin13.0.0
checking for a supported CPU... ok (x86_64)
checking for a 64-bit only build... no
checking for a 32-bit only build... no
checking for a supported OS... ok (darwin13.0.0)
checking for the kernel version... unsupported (13.0.0)
configure: error: Valgrind works on Darwin 10.x and 11.x (Mac OS X 10.6/7)

Berglöwe basiert auf Darwin 12.x; Mavericks basiert auf Darwin 13.x. Ich bin nicht sicher über die Nachrichten in den Fehlermeldungen, Valgrind 3.9.0 kann jedoch nicht sofort unter OS X Mavericks kompiliert werden.