Отслеживание стека или больше информации о необработанном исключении в Xcode/iPhone

Вы можете взглянуть на новую библиотеку поддержки процентов.

compile 'com.android.support:percent:22.2.0'

документы

выборка

51
задан Philippe Leybaert 7 July 2009 в 07:30
поделиться

3 ответа

Если вы добавите две точки останова, вы сможете отлаживать эти исключения. Для этого перейдите в Run | Показать | Точки останова и создать две глобальные точки останова (я делаю их глобально, потому что они очень полезны во всех моих приложениях). Первый должен называться «objc_exception_throw», а его расположение должно быть «libobjc.A.dylib». Второй должен быть «- [NSException raise]», а его местоположение должно быть «CoreFoundation».

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

73
ответ дан 7 November 2019 в 10:15
поделиться

Hey activa - for more information about runtime exceptions, you should be able to open the debugger console and see more information. I assume you've already done that, but just in case - you can get to it by selecting Run -> Console from the menu. I'm not sure why it doesn't come up automatically!

2
ответ дан 7 November 2019 в 10:15
поделиться

Вы можете заключить свой UIApplicationMain в команду try / catch:

int main(int argc, char *argv[]) {
    int retVal;
    NSAutoreleasePool * pool;
    @try
    {
    pool = [[NSAutoreleasePool alloc] init];
    retVal = UIApplicationMain(argc, argv, nil, nil);
    }
    @catch(NSException* e)
    {
        NSLog(@"%@", e.reason);
    }
    @finally
    {
    [pool release];
    }
    return retVal;
}

Вам также следует изучить установку обработчика утверждений во время отладки: NSAssertionHandler .

Обновление: а также обработчик необработанных исключений: NSSetUncaughtExceptionHandler

1
ответ дан 7 November 2019 в 10:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: