GDB умирает из-за NSZombieEnabled

У меня были некоторые проблемы с памятью (exc-bad-access) в Objective-C, XCode, для iPhone, поэтому я немного поискал и нашел о (потрясающем) NSZombieEnabled. Все вокруг просто объясняют, как это круто... но у меня это не работает :/

Я следовал следующему «учебнику»: http://www.cocoadev.com/index.pl?DebuggingAutorelease

  • Я дважды щелкнул исполняемый файл на вкладке исполняемых файлов (левая панель) и добавил NSZombieEnabled=YES к переменным среды.
  • Я также добавил кучу других параметров (таких как история malloc, некоторые пользовательские ~/.gdbinit, которые я нашел в Интернете и т. д.), но это не решило проблему.

Так что в основном, когда я запускаю (в режиме отладки) GDB sais

«Неопределенная команда: «NSZombieEnabled». Попробуйте «помощь».

И он в основном останавливается (в строке состояния написано - ошибка в GDB - завершение).


person Iskren Ivov Chernev    schedule 19.12.2009    source источник


Ответы (1)


Проблема, скорее всего, в вашем файле ~/.gdbinit, поскольку предоставленная вами ошибка указывает на то, что gdb пытался - и не смог - проанализировать команду.

В .gdbinit команда должна выглядеть так:

set env NSZombieEnabled=YES

Чтобы помочь в дальнейшем, вам нужно добавить .gdbinit в вопрос. Однако редко требуется использовать файл .gdbinit (для всего, кроме расширенной отладки). Я бы предложил удалить его.

Для отладки автоматического выпуска используйте Инструменты....

person bbum    schedule 20.12.2009
comment
cocoadev.com/index.pl?NSZombieEnabled Я получил .gdbinit с этого сайта. Как я уже сказал, единственное, что действительно вызывает сбой gdb, — это установка NSZombieEnabled в переменных среды через xcode. Если убрать там галочку, то все нормально работает (разве что у меня нет NSZombieEnabled :)). Я добавил это в свой .gdbinit после того, как он уже давал сбой. - person Iskren Ivov Chernev; 20.12.2009
comment
Хорошо, тогда как вы настраиваете переменную среды в Xcode? Возможно, вы сможете выбрать строку в редакторе переменных среды и скопировать/вставить. - person bbum; 20.12.2009
comment
Проблема была связана с тем, что ошибка была в библиотеке, а не непосредственно в проекте, и в старых версиях xcode/ios с этим были проблемы. - person Iskren Ivov Chernev; 19.01.2011