умные способы отслеживания ошибок в Obj-C - PullRequest
1 голос
/ 25 августа 2009

У меня есть ошибка в моей программе Objective C, которая приводит к аварийному завершению работы машины в некоторых библиотечных методах, и это все библиотечные методы в стеке к основному (что я не коснулся из того, что дал мне XCode ). Итак, у меня есть немного загадки.

Я получаю ошибку:

Program received signal:  “EXC_BAD_ACCESS”.

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

Мой вопрос: поскольку это не происходит в моем собственном коде, есть ли какой-нибудь умный способ отследить, что я дважды выпускаю? или проверка кода - лучший выбор?

спасибо.

1 Ответ

2 голосов
/ 25 августа 2009

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

См. этот связанный вопрос SO для предложений по отладке перевыпущенных объектов. NSZombie будет творить чудеса для вас. Как только вы получите Snow Leopard (вы получите его в эту пятницу, верно?), Используйте инструмент Zombies, чтобы упростить процесс, и используйте статический анализатор Xcode, чтобы помочь вам найти такие ошибки во время компиляции.

Также посетите: http://www.cocoadev.com/index.pl?DebuggingTechniques и это Apple Tech Note .

...