42

valgrindMac OS X 10.6 (Snow Leopard) および 10.7 (Lion) で C/C++ アプリケーションのメモリ リークを検出するために使用していましたが、10.8 (Mountain Lion) や 10.9 (Mavericks) などの最近のリリースではサポートされていません。 OSをアップグレードしました。valgrindMac OS X 10.9 にインストールできるようなものは他にありますか?

4

3 に答える 3

12

2013 年 11 月 1 日、valgrindチームは Valgrind 3.9.0 を発表しました。

http://www.valgrind.orgから入手できる Valgrind バージョン 3.9.0 の新しいリリースを発表できることをうれしく思います。

3.9.0 は、多くの改善と通常のバグ修正のコレクションを含む機能リリースです。このリリースでは、MIPS64/Linux、Intel AVX2 命令、および POWER8 命令のサポートが追加されています。S390 の DFP サポートが追加されました。ハードウェア トランザクション メモリの初期サポートが Intel および POWER プラットフォームに追加されました。Mac OS X 10.8 (Mountain Lion) のサポートが改善されました。ベクトル化されたコードの Memcheck の精度が向上しました。

改善された Mountain Lion のサポートが、Mavericks で問題なく動作することを意味するかどうかはまだわかりません。サポートは 64 ビット コードのみであることが言及されています。

[...時間の経過...ダウンロードが行われます...期待が高まります...構成が試行されます...希望は打ち砕かれます...]

うーん!

...
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 は Darwin 12.x に基づいています。Mavericks は Darwin 13.x に基づいています。エラー メッセージのメッセージについてはよくわかりませんが、そのままでは、Valgrind 3.9.0 は OS X Mavericks でコンパイルされません。

于 2013-11-01T13:42:37.497 に答える
12

Valgrind が Mac 10.9 別名 Maverick で動作するのを見るのに、長く待つ必要はないかもしれません。このバグレポートによると、いくつかの成功がありました。

私の意見では、現在 (2013 年 11 月 15 日現在) Mac 用の Valgrind の代替品はありません。ただし、注目すべきものがあります。具体的には、 AddressSanitizer (現在の Mac で動作) とMemorySanitizer (Mac はまだサポートされていません)の両方を持つClangです。

Xcode の Instruments を使用する提案がありますが、まったく役に立ちませんでした。

于 2013-11-15T19:19:52.717 に答える
7

@Charlie_Burns が上で言及したインストルメントに加えて、コードを分析するだけでこれらのことのいくつかを教えてくれる静的アナライザーもあります。Xcode プロジェクトで、[製品] メニューから [分析] を選択するだけです。clang静的アナライザーを呼び出します。clang私はそれをしていませんが、必要に応じてコマンドラインから直接使用することもできると思います。

leaksコマンドラインでは、コマンドとコマンドにもアクセスできますdtrace

于 2013-11-01T03:26:52.127 に答える