Как найти блоки Objective-C в приборах распределения или утечки - PullRequest
9 голосов
/ 22 ноября 2011

Первый вопрос, так что не держите это против меня ...

Для стандартных объектов и подклассов, которые я создаю, довольно просто найти в Распределениях или Инструментах Утечки конкретный объект. то есть, если я хочу увидеть подкласс UIViewController с именем ViewController, я могу прокрутить инструмент Allocations и увидеть, как количество живых объектов увеличивается и уменьшается. Точно так же, если тот объект просочился, Инструмент Утечки перечислит это. Я даже могу искать конкретные объекты.

Однако я не уверен, что искать при поиске блоков Objective-C. Я заметил в Инструменте Утечки, что протекший блок появляется как __NSMallocBlock. Однако при использовании инструмента Allocations поиск __NSMallocBlock не отображается.

Есть идеи, что искать в инструменте распределения для отслеживания блоков Objective-C?

Большое спасибо

1 Ответ

3 голосов
/ 10 декабря 2011

Кажется, по крайней мере, в Xcode 4.2.1, что Блоки (как в (^), я буду использовать верхний регистр / полужирный для них) отображаются в инструменте распределения как просто общий Malloc блоки памяти (как в кусках памяти, строчные буквы не выделены жирным шрифтом).

То есть Malloc NN Bytes, где NN - количество байтов, необходимое для этого Блок . Обычно Malloc 32 или Malloc 64, в зависимости от того, что может захватить Блок .

Конечно, есть множество других блоков Malloc того же размера. Если вы сортируете по ответственному абоненту, это может помочь вам отфильтровать их.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...