У меня есть приложение, которое сбой без трассировки ошибок. Я могу видеть часть того, что происходит, если я отлаживаю, но не могу понять, какой объект является "зомбированием".
Кто-нибудь знает, как включить NSZombie в Xcode 4?
У меня есть приложение, которое сбой без трассировки ошибок. Я могу видеть часть того, что происходит, если я отлаживаю, но не могу понять, какой объект является "зомбированием".
Кто-нибудь знает, как включить NSZombie в Xcode 4?
Переменные среды теперь являются частью "схемы".
Чтобы отредактировать схему и включить зомби:
В меню "Продукт" выберите "Редактировать схему".
Перейдите к этапу "Запустить Foo.app" на левой панели и к вкладке "Аргументы" справа.
Добавьте NSZombieEnabled
в раздел "Переменные среды" и установите значение YES
, как это можно сделать в Xcode 3.
В Xcode 4.1 и выше на вкладке "Диагностика" этапа "Выполнить" также имеется флажок "Включить объекты-зомби".
С Xcode 6.4:
Я столкнулся с той же проблемой, что и устранение неполадок EXC_BAD_ACCESS, и мне было трудно найти настройки с помощью Xcode 4.2 (последняя из которых относится к iOS5 SDK). Apple продолжает перемещать вещи, и настройки уже не там, где они были.
К счастью, я нашел его, и он работает на устройстве, а не только на Simulator. Вам нужно открыть меню "Продукт" в Xcode, выбрать "Изменить схему", а затем выбрать вкладку "Диагностика". Там у вас есть "Включить объекты зомби". После выбора и запуска в отладчике вы укажете на двойной выпущенный объект! Наслаждайтесь!
Короче
Product->Edit Scheme->Diagnostics-> Click Enable Zombie Objects
Продукт > Профиль запустит Инструменты, а затем у вас должен быть "Шаблон трассировки" под названием "Зомби". Однако этот шаблон трассировки доступен только в том случае, если текущим назначением сборки является симулятор - он не будет доступен, если у вас установлен пункт назначения на ваше устройство iOS.
Также следует отметить, что в инструментальной библиотеке нет реального инструмента Зомби. Шаблон трассировки зомби фактически состоит из инструмента Allocations с набором конфигурации запуска Enable NSZombie.
Это простой вопрос об установке переменной среды в исполняемом (NSZombieEnabled = YES)
, а затем запуск/отладка вашего приложения как обычно. Если вы сообщите об этом зомби, ваше приложение будет разбивать/отлаживать на отладчик и NSLog
сообщение для вы.
Для получения дополнительной информации ознакомьтесь с этой страницей CocoaDev: http://www.cocoadev.com/index.pl?NSZombieEnabled
Кроме того, этот процесс станет намного проще с выпуском 10.6 и следующих версий Xcode и Instruments. Просто говорю'. =)
Продукт > Появится профиль. Выбирайте зомби с панели и гайки.
Перейдите на страницу Схема продукта - Схема - Аргументы - Переменные окружения NSZombieEnabled = YES
В xcode 4.2
Готово, Продукт → изменить схему → нажмите Запустить yourappname.app → Диагоности → Включить объект Zombie.
Здесь показано видео и объяснение того, как использовать инструменты и NSZombie для поиска и исправления сбоев памяти в iOS: http://www.markj.net/iphone-memory-debug-nszombie/
Начиная с Xcode 3.2.5 и Snow Leopard (Mac OS X 10.6), вы можете запустить свой код через инструмент Zombies: Run > Run with Performance Tool > Zombies
. Это позволяет вам видеть определенные объекты и их учетные данные на временной шкале.
В Xcode 4.5.2 goto Product → Edit Scheme → and Under the Diagnostics установите флажок между объектами C и Enable Zombie Objects и нажмите OK.
Чтобы включить ведение журнала Zombie, дважды щелкните исполняемый файл в группе исполняемых файлов вашего проекта Xcode. В этот момент перейдите на вкладку "Аргументы" и в разделе Variables to be set in the environment:
введите переменную с именем NSZombieEnabled
и установите ее значение YES
.
В XCode 4.0: для обнаружения NSZombie в инструментах выберите Simulator в качестве вашей цели (не можете обнаружить NSZomboe на устройстве). Run Tools (CMD + I) и выберите шаблон трассировки "Zombies". Наслаждайтесь.
В настройках вашего исполняемого файла добавьте переменную окружения NSZombieEnabled
и установите значение YES
.
в ur XCODE (4.3) далее кнопка воспроизведения:) (run)
выберите: отредактируйте схему
откроется окно управления схемой
перейдите на вкладку "Аргументы"
вы должны увидеть: 1- Аргументы, переданные при запуске 2 переменные окружения
внутри (2- переменных среды) место
Имя: NSZombieEnabled
Значение: ДА
И его сделано....
NSZombieEnabled используется для отладки BAD_ACCESS,
включить переменную среды NSZombiesEnabled из листа схем Xcodes.
Click on Product⇒Edit Scheme to open the sheet and set the Enable Zombie Objects check box
этот видео поможет вам увидеть, что я пытаюсь сказать.