Objective-C 向けの静的解析ツール clang

| | Save This Page to del.icio.us このエントリーを含むはてなブックマーク

Objective-C 2.0 からガーベジコレクションが導入されて話題になりましたが、
iPhone OS ではサポートされていないので、iPhone アプリを作ろうと思うと
カウント方式と言われる方法で、メモリ管理を自分でしなければなりません。

しかし普段 AS で、ガーベジコレクションに頼ったプログラムを書いている人からすると
このメモリ管理になかなか慣れることが出来ず、ついついメモリリークしてしまいます。

それを防ぐための clang というツールを アシアルブログ で目にしたので、
早速、試してみました。

Picture 1.png

メモリリークがたくさん見つかってしまいました...
ファイル名と行数が書かれているので、簡単に場所を特定することが出来ます。

しかし、これはとても便利ですね。驚きました。
Xcode に統合されれば良いのに、と思いました。

使い方は、プロジェクトディレクトリで

% scan-build -V -o ~/Desktop xcodebuild

で、解析が行われて HTML をブラウザに表示してくれます。

オプションの -o は出力先を指定していて、-V は解析後にブラウザを自動で
起動するためのものです。引数の xcodebuild はコンパイルに使われるコマンドです。

なお、実行すると実際にコンパイルされて、それが解析対象になるので、
もう一度、実行する時は clean してやる必要があります。

% xcodebuild clean