NSZombieEnabled не помогает моему obj_msgSend - PullRequest
0 голосов
/ 17 октября 2011

Я получаю EXC_BAD_ACCESS с моим приложением для iPhone на 0x01ad809b <+0015> mov 0x8(%edx),%edi

У меня NSZombieEnabled установлено YES, но я не вижу ни одного класса, распечатанного в отладчике, как обычно.

Есть ли другой способ устранения этой проблемы?

Ответы [ 3 ]

0 голосов
/ 17 октября 2011

Используйте инструменты для профилирования и обнаружения зомби.

  1. Измените цель построения на Симулятор
  2. В меню Build выберите Profile
  3. Инструменты откроются, затем выберите Zombies инструмент

. При этом автоматически устанавливается флаг NSZombieEnabled, и при каждом сообщении об освобожденном объекте появляется всплывающее сообщение.При нажатии на раскрытие отобразятся события управления памятью объекта.

0 голосов
/ 17 октября 2011

У вас есть сбой, вызванный, скорее всего, повреждением памяти, использованием переменной, которая не инициализирована, и / или приведением необъектного типа к объекту.

Во-первых, опубликуйте обратный след аварии. Это обеспечит больше контекста.

Во-вторых, попробуйте Построить и проанализировать. Исправьте любые проблемы, которые он определяет.

Наконец, если это новый сбой, вернитесь к ревизии непосредственно перед сбоем и затем двигайтесь вперед до тех пор, пока не попадете в сбой. Какие изменения произошли за этот промежуток времени?

В более широком контексте - в частности, в журнале сбоев (или, по крайней мере, в обратном направлении) - могут быть предложены более конкретные методы отладки.

0 голосов
/ 17 октября 2011

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

Попробуйте и с информацией о malloc.

...