2012-02-28 2 views
3

Поскольку я обновил с xcode 3.1 до xcode 4.2, когда я отлаживаю программу, и по какой-то причине я получаю ошибку SIGABRT (т. Е. Вызов метода объекта, который не существует). Xcode показывает ошибка в основной функции программы, а не в строке, которая генерирует SIGABRT.SIGABRT Xcode 4.2 issue

Возможно, мне не хватает какой-либо конфигурации в отладчике или в коде xcode? есть идеи?

ответ

0

Что это сделал для меня, было что-то, что я нашел here, что имеет отношение к созданию NSZombies

Я по крайней мере скопирую основные моменты:

  1. Перейти к вашему проекту в Xcode 4
  2. переменные среды могут быть установлены в редакторе схемы (найти продукт -> Изменить схему ... в строке меню):
  3. Имя переменной, как NSZombieEnabled и установите его значение к YES.
  4. Запустите приложение в режиме отладки. Вероятно, вы получите сообщение ... на сообщение deallocated instance ... и отладчик остановится в строке с ошибкой. Эта информация приводит к этой проблеме.
  5. Когда вы готовы, отключите NSZombieEnabled, изменив YES на NO.
0

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

http://bit.ly/zuTnpF

+0

Hi Raheel. Они находятся в выключенном состоянии. Я читал, и, похоже, это какая-то проблема в xcode 4.2 –

2

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

Отъезд this blog post и this tutorial on how to create symbolic breakpoints. Я сам создал Exception контрольную точку (она ловит objc_exception_throw тоже) таким образом:

(for all exceptions)

, а затем переместил его в "User" контрольные точки пространства:

enter image description here