9

初めての質問なので、私にそれを保持しないでください...

私が作成した標準オブジェクトとサブクラスの場合、割り当てまたはリーク インストルメントで特定のオブジェクトを見つけるのはかなり簡単です。つまり、ViewController という UIViewController のサブクラスを見たい場合は、Allocations インストゥルメントをスクロールして、生きているオブジェクトの数が増減するのを確認できます。同様に、そのオブジェクトがリークされた場合、Leaks Instrument はそれをリストします。特定のオブジェクトを検索することもできます。

しかし、Objective-C のブロックを探すときに何を探すべきかわかりません。Leaks Instrument で、リークされたブロックが __NSMallocBlock として表示されることに気付きました。ただし、Allocations Instrument を使用する場合、__NSMallocBlock の検索は表示されません。

Objective-C ブロックを追跡するために、Allocations Instrument で何を探すべきかアイデアはありますか?

どうもありがとう

4

1 に答える 1

3

少なくともXcode4.2.1の時点では、ブロック((^)のように、大文字/太字を使用します)は、一般的なMallocメモリブロック(メモリのチャンクのように)としてAllocationsInstrumentに表示されるようです。小文字は太字ではありません)。

したがってMalloc NN Bytes、NNはそのブロックに必要なバイト数です。そのブロックが何をキャプチャしたかに応じて、通常はMalloc32またはMalloc64です。

もちろん、同じサイズの他のMallocブロックがたくさんある可能性があります。Responsible Callerで並べ替えると、それらを除外するのに役立つ場合があります。

于 2011-12-10T04:33:45.693 に答える