Objective-C 2.0 からガーベジコレクションが導入されて話題になりましたが、
iPhone OS ではサポートされていないので、iPhone アプリを作ろうと思うと
カウント方式と言われる方法で、メモリ管理を自分でしなければなりません。
しかし普段 AS で、ガーベジコレクションに頼ったプログラムを書いている人からすると
このメモリ管理になかなか慣れることが出来ず、ついついメモリリークしてしまいます。
それを防ぐための clang というツールを アシアルブログ で目にしたので、
早速、試してみました。
メモリリークがたくさん見つかってしまいました...
ファイル名と行数が書かれているので、簡単に場所を特定することが出来ます。
しかし、これはとても便利ですね。驚きました。
Xcode に統合されれば良いのに、と思いました。
使い方は、プロジェクトディレクトリで
% scan-build -V -o ~/Desktop xcodebuild
で、解析が行われて HTML をブラウザに表示してくれます。
オプションの -o は出力先を指定していて、-V は解析後にブラウザを自動で
起動するためのものです。引数の xcodebuild はコンパイルに使われるコマンドです。
なお、実行すると実際にコンパイルされて、それが解析対象になるので、
もう一度、実行する時は clean してやる必要があります。
% xcodebuild clean