メモリの不正アクセスによる不具合は再現率が低かったりしてデバッグが難しかったりしますが、XCode7で追加されたAddress Sanitizerを使うとXCodeが検知してくれるよ、という機能です。
こちらを参考にしました。
##Address Sanitizerを有効にする
あからさまに不正アクセスするサンプルを用意しましょう。
- (void)viewDidLoad {
[super viewDidLoad];
char *buffer = malloc(80);
buffer[80] = 'Y';
free(buffer);
}
このまま実行しても何事もなく動いちゃったりします。
Address Sanitizerを有効にしてみましょう。
ここからEdit Schemeを選択します。
"Enable Address Sanitizer"をチェックします。
この状態で実行してみましょう。
はい、怒られました。
開発中は有効にしておくと良いかもしれません。
ただし、この機能が有効なのはObjective-CなどC系の言語のみです。
Swiftをお使いの場合は意味がないのでOFFのままで良いでしょう。