このエントリーをはてなブックマークに追加このエントリをつぶやく

NSZombieEnabled

メモリリークを修正したと思ったら、今度はEXC_BAD_ACCESSに悩まされた経験はありませんか? そんなときに役立つNSZombieEnabled機能がXcode4では簡単に設定できるようになっていました。

EXC_BAD_ACCESSは主に解放済みのオブジェクトにアクセスしたときに発生します。retainせずにオブジェクトをインスタンス変数にセットしたり、必要以上にreleaseを呼び出していると、忘れた頃に意外なところでクラッシュして驚かされます。

NSZombieEnabled機能を有効にしておくと、解放済みのオブジェクトにアクセスした瞬間にログを出力して実行が停止するので、原因の特定がいくらか楽になります。

で、その設定方法ですが、以前は実行ファイルの環境変数として名前(NSZombieEnabled)と値(YES)をすべて手で入力する必要がありました。綴りが間違っていれば当然有効にはなりません。

Xcode4ではProduct>Edit Scheme…の画面にあらかじめチェックボックスが用意されているので、クリックしてチェックを入れるだけです。

Product > Edit Scheme... > Run - Diagnostics

ほかにも様々な機能があるようですが、まだ使いこなせていません。
便利なものがあればまたこのブログでご紹介します。

カテゴリー: プログラミング   タグ: ,   この投稿のパーマリンク

コメントは受け付けていません。