Как получить номер строки, имя метода и имя класса, когда происходит сбой, используя Цель 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, но они не дают мне никакого руководства: