2013-10-15 2 views
8

У меня есть проект, созданный для iOS 7, и до сих пор он работал нормально, но после слияния Git некоторые настройки или что-то испортились, и исключения не выводятся на консоль. Таким образом сообщение об ошибке «Завершение приложения из-за неперехваченного исключения» никогда не отображается в консоли. Я пробовал проект как на устройстве, так и на симуляторе, то же самое. Я не могу найти причину, почему это и как ее исправить, и я смиренно прошу вас о помощи.Xcode 5 не печатает подробности об исключении

факты:

  • отладчик работает и работает,
  • отладчик останавливается и основные моменты правильной линии,
  • все исключения останова активна,
  • команды NSLog работают,
  • Команда po в lldb работает.

Что я пробовал, прежде чем просить о помощи?

  • очистка (в том числе построить папку) и восстановление проекта,
  • Перезапуск Xcode,
  • Перезапуск OS X,
  • Reconnecting устройства,
  • Rebooting устройства.

Что еще я могу сделать? Спасибо за помощь!

+0

Вы пытались различить git commits, чтобы узнать, что было изменено? – neilco

+1

Вы нажимаете кнопку продолжения после остановки отладчика?По моему опыту, детали не печатаются до тех пор, пока вы не нажмете кнопку продолжения дважды после того, как отладчик остановится на контрольной точке исключения. – borrrden

+0

Я проверил фиксацию, ничего не было изменено в файлах проекта. Только файлы исходного кода. @borrrden, конечно, я попробовал это. Не меняет ничего, даже если отладка остановлена, ничего не выводится на консоль относительно исключений. – Legoless

ответ

5

Я столкнулся с этой проблемой при попытке отладки автокатастрофы. Не уверен, если это относится ко всем случаям, но вот мое решение:

Я сделал некоторые охоты, и наткнулся на эту ссылку:

Investigating NSExceptions with LLDB

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

Шаги:

Add an Exception Breakpoint

Edit the breakpoint you just added

Add an action to <code>po $eax</code>, and check "automatically continue after evaluating"

решаемые вопрос, который я в настоящее время имеющий, и я уверен, что вариации этого решения (po $ebx, po [NSThread callStackSymbols] и т.д.) должны обойти большинство проблем с отсутствующими описаниями исключений.

+0

Я добавлю здесь сложную точку, которая также поможет. ctrl, а затем перейдите в «Move Breakpoint to», а затем «User». Это сделает пользователь конкретным. –

Смежные вопросы