Как отлаживать EXC_BAD_ACCESS в приложении iPhone, когда я не могу определить причину?

Помогите, вот уже несколько недель взламываю! У меня есть это приложение, которое я разрабатываю в симуляторе, и я сделал много вещей для пользовательского интерфейса, это просто самое интересное с данными. Он запускается сразу после запуска, примерно в 90% случаев, когда я его запускаю, он вызывает исключение EXC_BAD_ACCESS.

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

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

У отладчика есть этот стек, но это немного колеблется при каждом сбое. Непоследовательная природа подсказывает мне, что есть какая-то память, которую она автоматически освобождает, но я понятия не имею, как это узнать.

0 objc_msgSend
1 ??
2 _CFAutoReleasePoolPop
3 -[NSAutoReleasePool release]
4 _UIApplicationHandleEvent
5 PurpleEventCallback
6 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__
7 __CFRunLoopDoSource1
8 __CFRunLoopRun
9 CFRunLoopRunSpecific
10 CFRunLoopRunInMode
11 -[UIApplication _run]
12 UIApplicationMain
13 main

Еще несколько фактов:

  • Я установил NSZombieEnabled, но этого не произошло. make a difference in the console output
  • I ran Instruments using the Leaks profile, it didn't show any leaks
7
задан Jay Imerman 13 April 2011 в 23:21
поделиться