Я разрабатываю приложение, в котором я должен отслеживать сбои. Существует ограничение, что я не могу использовать какой-либо сторонний источник, такой как платформа Twitter Fabric, для обработки журнала сбоев.
В настоящее время я могу только получить причину сбоя. Я не могу определить точную точку падения.
Что я делаю:
В методе 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, но они не дают мне никаких указаний:
[myary objectAtIndex:22];
this ... но номер строки, который я получаю, относится к этому `NSLog(@%s %d %s %s, FILE, LINE , PRETTY_FUNCTION, FUNCTION);` - person Dalvik   schedule 23.06.2016dsym
файлы, которые вы загружаете (обычно с помощью сценария этапа сборки).dsym
имеет сопоставление между фрагментами кода и номером файла и строки, из которых они были скомпилированы. - person Avi   schedule 23.06.2016