Как включить NSZombie в инструментах Xcode 4.1 под Lion?
Это касается ТОЛЬКО нового Xcode 4.1, специально работающего на Lion. Как включить NSZombie в инструментах? Это больше не в Распределениях в значке (i) под Конфигурацией Запуска как в Xcode 4.0. Также нет записи в Библиотеке под названием Зомби.
Конечно, проблема в том, что я не могу вернуться к Xcode 4.0, потому что он отказывается работать под Lion, так что я в затруднении! Любые другие передовые разработчики, использующие Lion, которые, имея больше опыта, чем я, могут помочь разобраться? Благодарю. -Ric
3 ответа
Я получил этот очень полезный ответ от Apple относительно моего собственного вопроса. Дословно -
Я: Есть ли обновление о том, как найти эти жестко освобожденные объекты, тестирование на устройстве, используя 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.
http://www.opensource.apple.com/source/CF/CF-635/CFRuntime.c
Если вы сделаете это, ваше приложение остановится (за исключением точки останова), когда вы отправите сообщение зомби, независимо от того, как вы его запустили. Таким образом, вы можете запустить его в Инструментах с инструментом Распределения и получить как обнаружение зомби, так и отслеживание распределения.
Обратите внимание, что когда сообщается о зомби, система печатает что-то вроде этого:
*** - []: сообщение отправлено освобожденному экземпляру "
Это не появляется в области консоли инструментов; вам нужно будет использовать Xcode Organizer (или iPCU) для его просмотра.
Поделитесь и наслаждайтесь
Куинн "Эскимос!" Отношения с разработчиками Apple, Техническая поддержка разработчиков, ОС ядра и оборудование
Я: надеюсь, что это полезная информация для некоторых из вас в этой ситуации.
Существует еще один способ запуска с NSZombie на устройстве, но это делается с помощью XCode 4, а не инструментов.
Для запуска с NSZombie на устройстве откройте ваш проект XCode и нажмите на верхний пункт меню "Product", затем удерживайте alt и нажмите "Run", это откроет отдельное окно, где вы увидите "Переменные среды" в нижней части окна., Нажмите "+" и введите "NSZombieEnabled" для имени и "YES" для значения.