Xcode 5 Instruments не показывает зомби

Я не могу публиковать изображения, так как у меня еще нет 10 повторений, поэтому мои извинения, если что-то из этого является расплывчатым.

Я пишу приложение ARC для Mac OS X, и оно выдает ошибку EXC_BAD_ACCESS. В попытке отследить проблему я включил Зомби-объекты на вкладке "Диагностика".

Я тогда запускаю инструменты (зомби)

Наконец, я записываю и вызываю сбой приложения и генерируется ошибка. Однако вместо того, чтобы получать какие-либо индикаторы зомби в инструментах, я получаю отчет о проблеме приложения для своего приложения, которое я профилирую, говоря, что мое приложение "неожиданно завершает работу". Для меня не производится трассировка стека, и этот отчет о проблеме не очень полезен для меня.

Может ли ошибка EXC_BAD_ACCESS быть вызвана чем-то, кроме разыменования указателя на память, которая была освобождена? Должен ли я всегда ожидать получение зомби в этом случае, когда возникает ошибка EXC_BAD_ACCESS? Если так, то как я могу увидеть зомби? Что еще мне нужно настроить, чтобы получить зомби?

Спасибо

2 ответа

Решение

Может ли ошибка EXC_BAD_ACCESS быть вызвана чем-то, кроме разыменования указателя на память, которая была освобождена?

Да. Эта ошибка просто означает, что ваша программа пыталась разыменовать указатель, указывающий на местоположение, к которому ваша программа не имеет доступа. Это может быть связано с тем, что он указывает на объект, который больше не существует, но это также может произойти, когда вы используете указатель, не устанавливая его на что-то допустимое в первую очередь, или когда вы неправильно пытаетесь использовать значение без указателя в качестве указателя,

Должен ли я всегда ожидать получение зомби в этом случае, когда возникает ошибка EXC_BAD_ACCESS?

Нет, NSZombieEnabled помогает вам только найти случаи, когда вы пытаетесь получить доступ к освобожденному объекту. Это не поможет вам в других случаях, которые производят EXC_BAD_ACCESS.

Вы можете попробовать добавить точку останова исключения в Xcode.

  1. Перейдите на вкладку "Точка останова" в XCode
  2. Нажмите знак плюс
  3. Нажмите "Добавить точку останова исключения"

    Точка останова исключения

Другие вопросы по тегам