EXC_BAD_ACCESS исчезает с включенными зомби - PullRequest
3 голосов
/ 25 сентября 2011

Я получаю сбой EXC_BAD_ACCESS при запуске, и Xcode говорит, что сбой находится в строке NSApplicationMain в моем файле main.m.Авария происходит в 99% случаев, и когда я запускаю ее с включенными зомби, аварии никогда не происходит.Кто-нибудь видел это раньше?Как я могу отладить это?

Ответы [ 2 ]

1 голос
/ 25 сентября 2011

Причина, по которой запуск с включенными зомби разрешает плохой доступ, заключается, вероятно, в том, что а) в этом режиме объекты не освобождаются, когда их счетчик удерживания достигает нуля, и б) что исходный сбой происходит из-за доступа к уже освобожденномуobject.

Однако при включенном зомби вместо сбоя, я думаю, вы должны увидеть в консоли отладки доступ к освобожденному объекту.

Я также рекомендую использовать статический анализатор ("Analyze"в меню XCode) в надежде, что он найдет виновника.

1 голос
/ 25 сентября 2011

Если вы используете Xcode4, то по умолчанию показывается очень мало стека вызовов, переместите ползунок внизу вправо. Вы можете не найти ни одного своего кода, но вы должны быть в состоянии получить хорошее представление о том, что происходит. Если это было уведомление или селектор после задержки, вы увидите, что отправка Runloop и это также даст вам подсказку.

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

Как сказал @Danra, запустите Xcode Analyzer и исправьте все жалобы.

...