Is there a way to symbolicate the crash reports after we get the crash data?
Currently, this is what I'm doing in handleCrashReport method;
PLCrashReportTextFormat textFormat = PLCrashReportTextFormatiOS;
/* Decode data */
PLCrashReport *crashLog = [[PLCrashReport alloc] initWithData: data error: &error];
if (crashLog == nil) {
NSLog(@"Could not decode crash file :%@", [[error localizedDescription] UTF8String]);
} else {
NSString* report = [PLCrashReportTextFormatter stringValueForCrashReport: crashLog withTextFormat: textFormat];
NSLog(@"Crash log \n\n\n%@ \n\n\n", report);
NSString *outputPath = [documentsDirectory stringByAppendingPathComponent: @"app.crash"];
if (![report writeToFile:outputPath atomically:YES encoding:NSUTF8StringEncoding error:nil]) {
NSLog(@"Failed to write crash report");
} else {
NSLog(@"Saved crash report to: %@", outputPath);
}
}
When i print this out on console; I get this.
Application Specific Information:
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'This should crash the application.'
Thread 0 Crashed:
0 libsystem_kernel.dylib 0x93a0d9c6 0x939f5000 + 100806
1 libsystem_c.dylib 0x9c5aabdd 0x9c55b000 + 326621
2 shell 0x00082a2c 0x1000 + 530988
3 CoreFoundation 0x0263d0fc 0x253f000 + 1040636
4 libobjc.A.dylib 0x00f8ef0f 0xf89000 + 24335
5 libc++abi.dylib 0x02a028de 0x29fd000 + 22750
6 libc++abi.dylib 0x02a02946 0x29fd000 + 22854
7 libc++abi.dylib 0x02a03b3e 0x29fd000 + 27454
8 libobjc.A.dylib 0x00f8ee15 0xf89000 + 24085
9 CoreFoundation 0x02573de0 0x253f000 + 216544
10 CoreFoundation 0x02573c9b 0x253f000 + 216219
11 UIKit 0x0150ac65 0x1501000 + 40037
12 UIKit 0x0150c626 0x1501000 + 46630
13 shell 0x00002fed 0x1000 + 8173
14 shell 0x00001f95 0x1000 + 3989
Thread 1:
0 libsystem_kernel.dylib 0x93a0e90a 0x939f5000 + 104714
1 libdispatch.dylib 0x02ad2be1 0x2ad1000 + 7137
Thread 2:
0 libsystem_kernel.dylib 0x93a0bc22 0x939f5000 + 93218
1 libsystem_notify.dylib 0x97cb9cd2 0x97cb8000 + 7378
2 libsystem_notify.dylib 0x97cbdb4b 0x97cb8000 + 23371
3 libsystem_c.dylib 0x9c5e859b 0x9c55b000 + 578971
4 CoreFoundation 0x025e61c3 0x253f000 + 684483
5 CoreFoundation 0x025e5d83 0x253f000 + 683395
6 Foundation 0x00caab53 0xc34000 + 486227
7 Foundation 0x00caaac5 0xc34000 + 486085
8 shell 0x003ddbf8 0x1000 + 4049912
9 libdispatch.dylib 0x02ad2330 0x2ad1000 + 4912
10 libdispatch.dylib 0x02ad3f0c 0x2ad1000 + 12044
11 libdispatch.dylib 0x02ad3cb4 0x2ad1000 + 11444
12 libdispatch.dylib 0x02ad3402 0x2ad1000 + 9218
13 libsystem_c.dylib 0x9c5b9b24 0x9c55b000 + 387876
14 libsystem_c.dylib 0x9c5bb6fe 0x9c55b000 + 395006
I want to symbolicate in-process If this is possible. Any ideas?
Thanks much in advance.
To symbolicate in Xcode, click the Device Logs button in the Devices and Simulators window, then drag and drop the crash report file into the list of device logs. Crash reports must have the . crash file extension.
Symbolication is the process of converting them into human readable, class/method names, file names, and line numbers.
You can symbolicate the crash report in process, this requires three things:
The latest version of PLCrashReporter is able to do that, but I would not recommend it and rather symbolicate it using the dSYM because it is way more helpful.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With