Esistono alternative a valgrind su Mac OS X Mountain Lion e Mavericks per rilevare perdite di memoria per applicazioni C/C++?




valgrind on mac (3)

Solo per quello che sai, potresti non dover aspettare a lungo per vedere Valgrind che lavora su Mac 10.9 alias Maverick. Come ci è stato un certo successo in base a questa segnalazione di bug .

È mia opinione che al momento non ci siano (al 15 novembre 2013) alternative a Valgrind per il Mac. Ce ne sono alcuni da tenere d'occhio, vale a dire Clang che ha sia AddressSanitizer (funziona su macs correnti) che MemorySanitizer (macs non ancora supportato).

Ci sono suggerimenti per usare gli strumenti di Xcode, ma non l'ho trovato affatto utile.

Ho usato valgrind per rilevare perdite di memoria per le mie applicazioni C / C ++ su Mac OS X 10.6 (Snow Leopard) e 10.7 (Lion), ma trovo che non è supportato nelle versioni recenti come 10.8 (Mountain Lion) e 10.9 (Mavericks) quando ho aggiornato il mio sistema operativo. C'è qualcos'altro come valgrind che può essere installato su Mac OS X 10.9?


Oltre agli strumenti che @Charlie_Burns menziona sopra, c'è anche l'analizzatore statico che può dirti su alcune di queste cose semplicemente analizzando il tuo codice. Nel tuo progetto Xcode, seleziona "Analizza" dal menu "Prodotto". Invoca l'analizzatore statico clang . Penso che tu possa usare clang direttamente dalla riga di comando, se lo vuoi, anche se non l'ho fatto.

Sulla riga di comando si ha anche accesso al comando leaks e al comando dtrace .


Il 2013-11-01, il team di valgrind ha annunciato Valgrind 3.9.0:

Siamo lieti di annunciare una nuova versione di Valgrind, versione 3.9.0, disponibile su valgrind .

3.9.0 è una versione di funzionalità con molti miglioramenti e la solita raccolta di correzioni di bug. Questa versione aggiunge il supporto per MIPS64 / Linux, le istruzioni Intel AVX2 e le istruzioni POWER8. Il supporto DFP è stato aggiunto per S390. È stato aggiunto il supporto iniziale per la memoria transazionale dell'hardware per le piattaforme Intel e POWER. Il supporto per Mac OS X 10.8 (Mountain Lion) è stato migliorato. La precisione di Memcheck sul codice vettoriale è stata migliorata.

Resta da vedere se il supporto migliorato Mountain Lion significa che funziona bene per Mavericks. Fa notare che il supporto è solo per codice a 64 bit.

[... il tempo passa ... i download avvengono ... le speranze aumentano ... la configurazione è tentata ... le speranze sono tratteggiate ...]

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)

Mountain Lion è basato su Darwin 12.x; Mavericks è basato su Darwin 13.x. Non sono sicuro della messaggistica nei messaggi di errore, ma Valgrind 3.9.0 non viene compilato immediatamente, non viene compilato su OS X Mavericks.





osx-mavericks