2008年12月04日

静的コード解析をしてメモリリーク等を教えてくれるclang

 clangというのが便利でした。Xcodeのプロジェクトを解析して、メモリリーク等のバグをHTML形式で吐いてくれるツールです。


iPhone SDK向けのコードを静的コード解析する


 Macユーザーは使い方分かると思います。以下、僕みたいにWinを使ってたけどiPhone開発のために初めてMacを触った人向け。


root権限がない



ここからビルドされたパッケージをダウンロード.ダウンロードしたファイルを解凍し,中のフォルダとファイルをすべて/usr/local/binにコピーする.(/usr/loca/bin/にパスが通っていることを前提)


 Finderで普通に見ると/usrがない。困った。ターミナルから覗くとどうやらあるっぽい。cpしようとすると、root権限が必要って怒られた(´・ω・`)

 アプリケーション/ユーティリティ/ディレクトリユーティリティ.appを立ち上げる。
 カギを開けて、編集>ルートユーザーを有効にする。パスワードを入力。一旦ログアウト、その他のユーザーで、ユーザー:root パスワード:さっきのパスワード。

Finderですべてのファイルを表示させる



 ターミナルからコピーすればいいのだけど、やっぱりすべてのファイルが見えないのは気持ち悪い。

ターミナル.appで

 defaults write com.apple.finder AppleShowAllFiles TRUE

を打ち込んだ後、リンゴマーク>強制終了>Finderの再起動ですべてのファイルが見れる。

後は適当に



Download

 すでにroot権限を持っているので、/usr/loca/bin/を適宜作って解凍したファイルの中身をつっこむ。

 

使う



 ターミナル.appで目的のプロジェクトがあるディレクトリまで移動

scan-build --view xcodebuild

で、解析後にブラウザが立ち上がってすぐ結果を見れる。

 バグの箇所だけではなく、各バグごとにレポートも表示してくれる。これが、iPhoneでObj-Cを初めて触った人にもわかりやすいレベルでとてもありがたいです。


Macの気持ち悪さ


 ファイルを隠すなら、表示するオプションをつけろと言いたい。見た目は綺麗だし、普通に使うユーザーに権限を与えないのはいいと思うのだけど、隠しすぎててなんかむずむずする。

 でも、Jobsの会社が作ったOSだって考えると、納得できるというか、あーそうだよね、うんうん、って思える。不思議。


参考

clangでObjective-Cプログラムを静的解析:オプションとか、注意点とか。



hayashi311 at 01:10コメント(1)トラックバック(1) 

トラックバックURL

トラックバック一覧

1. うん、できた。アイコンつくりと静的コード解析してみた。  [ コバンザメになりたい。 ]   2009年06月20日 01:54
初めてのアプリができました、だいたい2ヶ月くらいですね コンセプトは自分で使いやすいブラウザです。 objective-cもwebまわりもほとんど知らなかったですが それでも一番大変だったのは英語ですかね。 W-8BENとかその辺も平行してやってまして、その辺にか...

コメント一覧

1. Posted by bigsun   2009年06月06日 02:57
お忙しいところ申し訳ありません。。。
教えてください。

clangを実行すると、必ず最後に

** BUILD SUCCEEDED **
scan-build: Removing directory '/Users/name/Desktop/2009-06-06-1' because it contains no reports.

というエラーがでます。コード署名IDを変えたり、といろいろ試しましたが原因がわかりません。。。これは何が原因でしょうか?

コメントする

名前
URL
 
  絵文字
 
 
Twitter
記事検索
QRコード
QRコード
  • ライブドアブログ