Как выяснить, что вызвало ошибку времени выполнения на IPhone App? - PullRequest
1 голос
/ 23 января 2010

В Xcode, скажем, вы пишете приложение для iphone, и у него есть время выполнения ошибка в этом. То, что я видел, это то, что он просто закрывает программа в симуляторе, но на самом деле не подсвечивает обратная связь относительно того, какая строка вызвала сбой ... я что-то упустил ??

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

Ответы [ 3 ]

4 голосов
/ 24 января 2010

В консоли над трассировкой стека должно быть написано что-то вроде «[ClassName selectorName] нераспознанный селектор, отправленный экземпляру».

Убедитесь, что вы действительно хотели отправить этот селектор в этот класс.Если вы опубликуете, что это такое, мы могли бы помочь вам больше.

Чтобы получить доступ к GDB, включите точки останова, добавьте одну к своему коду, щелкнув строку с номером строки, нажмите build and debug и, наконец, откройте отладчик.(Ctrl + Shift + Y).

0 голосов
/ 24 января 2010

Вы можете установить глобальную точку останова для исключений, которая позволит вам отслеживать точную точку, в которой они произошли.Для этого выберите Run |Показать |Пункт меню точек останова в XCode, чтобы вызвать диалог точек останова.Выберите Глобальные точки останова (чтобы это было включено для всех ваших проектов) и создайте точку останова на objc_exception_throw в libobjc.A.dylib.

Теперь, если вы запускаете свое приложение, выбрав «Запустить |Отладка - Точки останова Включите или вручную включите точки останова в окне отладчика (Run | Debugger) перед запуском, приложение должно быть остановлено в точке, где выдается исключение.Затем вы можете посмотреть трассировку стека в окне отладчика, где он выделит конкретную строку, вызвавшую исключение.

0 голосов
/ 23 января 2010

Посмотрите в консоли (command-shift-R).

...