その後のその後

iOSエンジニア 堤 修一のブログ github.com/shu223

Xcode の Guard Malloc オプション

Xcode 4 で、


Edit Scheme → Debug を選択 → "Diagnostics" タブを選択


と進むと、下記のような設定項目が出てきます。



このうち、"Enable Zombie Objects" にはいつもチェックを入れるのですが、他のチェック項目はどういう効果があるんだろう?と思いつつもずっと調べていませんでした。


で、この中の "Guard Malloc" について日本語で書かれた記事を発見。


MacOSプログラミング/Guard Malloc(libgmalloc) について


これによると、Guard Malloc とは、

Guard Mallocはmalloc, callocなどで確保したメモリに対して不正な操作を行ってしまう類のバグの検出を助けるデバッグ用のライブラリです。

とのことです。


で、どんなことをやってくれるかというと、

Guard Mallocを使ってアプリケーションを実行すると、そうしたメモリに対してのバグがある場合、アプリケーションがバグの位置でハングアップします。

Guard Mallocは、malloc, free, NSZoneMallocとその派生系(callocなど)をリプレースし、バグの検出に特化したやりかたでメモリを確保します。

とのこと。


なんだか良さそうですが、その先に書いてある使い方を見ると、メモリまわりのしっかりした知識がないと実際のデバッグで使いこなすのは難しそうです。


というわけで、その辺りの知識が深まったらまた手を出してみようと思います。