Как получить номер строки, имя метода и имя класса, когда происходит сбой, используя Цель C

Я разрабатываю приложение, в котором я должен отслеживать сбои. Существует ограничение, заключающееся в том, что я не могу использовать какой-либо сторонний источник, такой как фреймворк Twitter, для обработки аварийных журналов.

В настоящее время я могу узнать только причину сбоя. Я не могу получить точную точку сбоя.

Что я делаю:

В моем приложении делегатdidFinishLaunchingWithOptions Метод я сделал свой собственный обработчик исключений:

    NSSetUncaughtExceptionHandler(&uncaughtExceptionHandler); 

uncaughtExceptionHandler ----

void uncaughtExceptionHandler(NSException *exception) {
    NSLog(@"CRASH: %@", exception);
    NSLog(@"callStackSymbols: %@", [exception callStackSymbols]);
    NSLog(@"callStackReturnAddresses: %@", [exception callStackReturnAddresses]);
    NSLog(@"reason: %@", [exception reason]);
    NSLog(@"name: %@", [exception name]);    
    NSLog(@"%s %d %s %s", __FILE__, __LINE__, __PRETTY_FUNCTION__, __FUNCTION__);
// Internal error reporting
}

Я разбил свое приложение вviewDidLoad метод, использующий это:

   NSArray *myary;

   myary = [NSArray arrayWithObjects:@"sad", nil];

   NSString *str =  [myary objectAtIndex:22];

Вот моя трассировка стека.

Есть ли какой-то способ добиться того, чего я хочу?

Я пытался следовать этим решениям от SO, но они не дают мне никакого руководства:

Решение 1

Решение 2

Ответы на вопрос(0)

Ваш ответ на вопрос