Подтвердить что ты не робот

Xcode всегда останавливается на main.m после сбоя

В прошлом, со старым и хорошим Xcode 3, каждый раз, когда у меня был сбой, Xcode остановился на оскорбительной строке, показывающей крушение. Это были хорошие времена, приятно отлаживать.

Теперь с Xcode 4.2 каждый раз, когда приложение выходит из строя, он останавливается на main.m в этой строке

int retVal = UIApplicationMain(argc, argv, nil, @"AppDelegate");

что не дает никакого представления о том, что вызывает крушение. Проблема может быть в любом классе, но она всегда останавливается на main.m при ее сбое.

Есть ли способ заставить его работать снова?

спасибо

Примечание. Я спросил об этом раньше на SO, но решение, учитывая, что время оказалось неудовлетворительным, и проблема сохраняется.

4b9b3361

Ответ 1

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

EDIT: (ссылка может сгнить, поэтому я буду дублировать информацию здесь)

Один из скрытых камней в Xcode 4.2 - это функция "Исключение точки останова". Когда вы включите его, ваша отладочная жизнь станет намного проще, потому что всякий раз, когда в приложении добавляется исключение, Xcode выводит строку кода, из-за которой возникает исключение. Это особенно полезно, если окно стека вызовов пусто (что я видел иногда во время работы с приложениями iOS). Вместо того, чтобы полагаться на краткое сообщение об ошибке на панели "Выход", которое не содержит гораздо больше, чем тип исключения и его сообщение об ошибке, вы можете увидеть, где именно проблема!

Вы можете добавить точку останова исключения, открыв панель "Навигатор точки останова" и нажав кнопку X в левом нижнем углу:

После нажатия пункта меню "Добавить точку останова..." вы увидите, что это окно конфигурации точки останова открывается:

Нажмите кнопку "Готово", и в списке контрольных точек будет новая точка останова исключения. Если вы хотите, чтобы все рабочие пространства Xcode включали точку останова исключения, щелкните правой кнопкой мыши (Ctrl + клик) на ней и откройте пункт меню "Переместить точку останова на":

После нажатия "Пользователь" в подменю вы увидите, что точка останова исключений находится в группе контрольных точек пользователя. Откройте другой проект, и он автоматически включится в список точек останова.

Счастливая отладка!

Ответ 2

Просто попробуйте следующие шаги, которые сработали для меня.

  • Откройте "Настройки", выберите вкладку "Поведение".
  • Выберите "Запустить выходы неожиданно" в левой колонке.
  • Выберите "Показать отладчик с текущими представлениями".

К сожалению, это снова вернулось к main.m в редакторе:) Теперь вам нужно выполнить следующие шаги

  • Откройте "Настройки", выберите вкладку "Поведение".
  • Просто перейдите к "run completees"
  • Найдите строку "Показать" и установите флажок
  • В той же строке измените цель, чтобы перейти в "Текущий" в выпадающем меню.

Это должно работать