Как вы включаете NSZombie в инструментах Xcode 4.1 под Lion? - PullRequest
4 голосов
/ 23 июля 2011

Это ТОЛЬКО в отношении нового Xcode 4.1, специально работающего на Lion.Как включить NSZombie в инструментах?Это больше не в Распределениях в значке (i) под Конфигурацией Запуска как в Xcode 4.0.Также нет записи в Библиотеке под названием Zombies.

Конечно, проблема в том, что я не могу вернуться к Xcode 4.0, потому что он отказывается работать под Lion, так что я в затруднении!Любые другие передовые разработчики, использующие Lion, которые, имея больше опыта, чем я, могут помочь разобраться?Благодарю.-Ric

Ответы [ 3 ]

8 голосов
/ 12 августа 2011

Я получил этот очень полезный ответ от Apple относительно моего собственного вопроса.Это дословно -

ME: Есть обновление о том, как найти эти жестко освобожденные объекты, тестирование на устройстве, используя Xcode 4.1.1 и / или инструменты?

APPLE: Сначалавверх, взлом, показанный выше [на форуме Apple], устарел из-за внутренних изменений в ОС, а именно, настройка Zombie теперь выполняется CF.Вы можете принудительно включить зомби, используя код, показанный ниже:

extern void _CFEnableZombies (void);

int main (int argc, char ** argv) {_CFEnableZombies ();

... rest of your main ...

}

ВАЖНО: функция _CFEnableZombies является закрытой, поэтому вы даже не думаете о внедрении этого кода в производственное приложение.Однако это не секрет;Вы можете увидеть, как это реализовано, заглянув в Lion с открытым исходным кодом Darwin.

http://www.opensource.apple.com/source/CF/CF-635/CFRuntime.c

Если вы сделаете это, ваше приложение остановится (с исключением точки останова), когда вы отправите сообщениезомби, независимо от того, как вы его запускаете.Таким образом, вы можете запустить его в Инструментах с инструментом Распределения и получить как обнаружение зомби, так и отслеживание распределения.

Обратите внимание, что когда сообщается о зомби, система печатает что-то вроде этого:

*** -[]: сообщение отправлено на освобожденный экземпляр "

Это не отображается в области консоли инструментов; для его просмотра необходимо использовать Xcode Organizer (или iPCU).

Shareи наслаждайтесь

Куинн "Эскимос!" Отношения с разработчиками Apple, техническая поддержка для разработчиков, базовая ОС / аппаратное обеспечение

ME: надеюсь, что это будет полезной информацией для некоторых из вас в этой ситуации.

3 голосов
/ 23 июля 2011

Это отличный инструмент:

Zombies as a separate instrument

2 голосов
/ 01 августа 2011

Существует еще один способ запуска с NSZombie на устройстве, но это делается с помощью XCode 4, а не инструментов.

Для запуска с NSZombie на устройстве откройте проект XCode и нажмите на элемент верхнего меню "Product », затем нажмите и удерживайте« Alt »и нажмите« Выполнить ». Откроется отдельное окно, в котором вы увидите« Переменные среды »в нижней части окна.Нажмите «+» и введите «NSZombieEnabled» для имени и «YES» для значения.

...