Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to stop symbolicate adding "<redacted>" pieces to iOS Crash Log

Tags:

ios

I have crash logs from an iPhone Application in the App Store (retrieved via iTunes Connect) that after symbolicating have a bunch of "<redacted>" method names from CodeData and CoreFoundation.

The original crash log file from iTunes Connect looks like:

Last Exception Backtrace:
0   CoreFoundation                  0x34a0929e __exceptionPreprocess
1   libobjc.A.dylib                 0x32d1997a objc_exception_throw
2   CoreData                        0x3631fec2 -[NSSQLCore _obtainOpenChannel]
3   CoreData                        0x363cfd9c newFetchedRowsForFetchPlan_MT
4   CoreData                        0x363b3be6 -[NSSQLCore newFetchedPKsForSourceID:andRelationship:]
5   CoreData                        0x363a6008 -[NSSQLCore newValueForRelationship:forObjectWithID:withContext:error:]
6   CoreData                        0x3635690a -[NSFaultHandler retainedFulfillAggregateFaultForObject:andRelationship:withContext:]
7   CoreData                        0x36326d48 -[_NSFaultingMutableSet willRead]
8   CoreData                        0x3632767c -[_NSFaultingMutableSet allObjects]

The log looks like this after symbolicating on my Mac:

Last Exception Backtrace:
0   CoreFoundation                  0x34a0929e <redacted> + 158
1   libobjc.A.dylib                 0x32d1997a objc_exception_throw + 26
2   CoreData                        0x3631fec2 <redacted> + 230
3   CoreData                        0x363cfd9c <redacted> + 948
4   CoreData                        0x363b3be6 <redacted> + 2590
5   CoreData                        0x363a6008 <redacted> + 528
6   CoreData                        0x3635690a <redacted> + 478
7   CoreData                        0x36326d48 <redacted> + 220
8   CoreData                        0x3632767c <redacted> + 20
9   [myappname]                     [memory addresses here]
...

Can anyone help find why "<redacted>" gets added to the symbolicated versions? Symbols from my own App are symbolicated fine, as are basic libobjc symbols as you can see above.

UPDATE: Switched around the logs to be clearer after Kerni's answer

like image 207
Alex Taylor Avatar asked Oct 09 '12 22:10

Alex Taylor


2 Answers

I had the same problem and got rid of messages by deleting all iOS 6.0 (including beta) data from ~/Library/Developer/Xcode/iOS DeviceSupport.

Now, symbolicate uses the symbol data stored at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/6.0 (10A403)/
instead of the stored symbol data in user library.

like image 184
and3rs Avatar answered Oct 16 '22 21:10

and3rs


As far as I understand you: The 1st report is downloaded from iTunes Connect, the second one is after you processed it on your Mac.

<redacted> is being used by iOS when resolving some system symbols for some parts of some system libraries when writing the crash report on the device. There is nothing you can do to make this not happen other than symbolicating it again on your Mac.

Update: The symbolication script reprocesses all lines and since one of the iOS 6 beta releases Apple started to report these <redacted> symbols. Which also means older versions of atos will return <redacted> instead of the proper symbol.

Please check if Xcode 4.5 is installed with the iOS 6 symbols present and also that Xcode 4.5 is currently selected. You need to make sure that your system uses the latest version of atos.

The symbolication script is using xcrun to find the atos binary, so you can check if it finds the correct one with the following command:

xcrun -find -sdk iphoneos atos

This should point to the Xcode 4.5 app package.

like image 24
Kerni Avatar answered Oct 16 '22 20:10

Kerni