iPhone アプリケーションのプログラミングでは、メモリ管理に注意する必要があります。
特に解放済みのオブジェクトをさらに解放してしまったり(二重解放)、解放済みのオブジェクトを操作しようとした場合は即座にアプリがクラッシュしてしまいます。
このようなメモリ関連のバグによるクラッシュの場合、何も残さずに突然終了してしまうことが多いため、原因の究明が困難です。
そんなメモリ管理のバグを Instruments を使って少し簡単に調査する方法を紹介します。
残念ながら、シミュレータでしが機能しないのですが、それでも原因の解明が簡単になる場合が結構あります。
下記のサイトでは、動画と画像でさらに詳しく解説されているので、そちらも参考にしてください。
iPhone Memory Debugging with NSZombie and Instruments — markj.net
「ObjectAlloc」の右側にある「i」マークのボタンを押して「Record reference counts」と「Enable NSZombie detection」を有効にします。
「Record reference counts」はオブジェクトごとの参照カウンタの記録、「Enable NSZombie detection」は dealloc されたオブジェクトを実際には解放せずに、ゾンビオブジェクトとして扱う機能になります。
実際にはオブジェクトを解放しないので、クラッシュ時に原因の追跡が可能になります。