Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why are my crash reports not symbolicated?

I'm using Xcode 4.3.1. The crash happened on my device, so I connect it and open up Organizer, go to my device logs, find the crash report, and here's what it reads:

Exception Type:  EXC_CRASH (SIGABRT)
Exception Codes: 0x00000000, 0x00000000
Crashed Thread:  0

Last Exception Backtrace:
0   CoreFoundation                  0x3514488f __exceptionPreprocess + 163
1   libobjc.A.dylib                 0x3656b259 objc_exception_throw + 33
2   CoreFoundation                  0x35144789 +[NSException raise:format:] + 1
3   CoreFoundation                  0x351447ab +[NSException raise:format:] + 35
4   CoreFoundation                  0x350b168b -[__NSCFDictionary setObject:forKey:] + 235
5   myapp                           0x0015b4a7 0xe8000 + 472231
6   myapp                           0x0018add1 0xe8000 + 667089
7   myapp                           0x0013cd5b 0xe8000 + 347483
8   Foundation                      0x30ffb60d __NSFireTimer + 145
9   CoreFoundation                  0x35118a33 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 15
10  CoreFoundation                  0x35118699 __CFRunLoopDoTimer + 365
11  CoreFoundation                  0x3511726f __CFRunLoopRun + 1207
12  CoreFoundation                  0x3509a4a5 CFRunLoopRunSpecific + 301
13  CoreFoundation                  0x3509a36d CFRunLoopRunInMode + 105
14  GraphicsServices                0x36396439 GSEventRunModal + 137
15  UIKit                           0x32190e7d UIApplicationMain + 1081
16  myapp                           0x000f6aff 0xe8000 + 60159
17  myapp                           0x000e9370 0xe8000 + 4976


Thread 0 name:  Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0   libsystem_kernel.dylib          0x34f3832c __pthread_kill + 8
1   libsystem_c.dylib               0x36e34208 pthread_kill + 48
2   libsystem_c.dylib               0x36e2d298 abort + 88
3   libc++abi.dylib                 0x30af9f64 abort_message + 40
4   libc++abi.dylib                 0x30af7346 _ZL17default_terminatev + 18
5   libobjc.A.dylib                 0x3656b350 _objc_terminate + 140
6   libc++abi.dylib                 0x30af73be _ZL19safe_handler_callerPFvvE + 70
7   libc++abi.dylib                 0x30af744a std::terminate() + 14
8   libc++abi.dylib                 0x30af881e __cxa_rethrow + 82
9   libobjc.A.dylib                 0x3656b2a2 objc_exception_rethrow + 6
10  CoreFoundation                  0x3509a506 CFRunLoopRunSpecific + 398
11  CoreFoundation                  0x3509a366 CFRunLoopRunInMode + 98
12  GraphicsServices                0x36396432 GSEventRunModal + 130
13  UIKit                           0x32190e76 UIApplicationMain + 1074
14  myapp                           0x000f6af8 0xe8000 + 60152
15  myapp                           0x000e9368 0xe8000 + 4968

I thought Xcode handles symbolicating the crash reports for me automatically? Why am I not getting any line numbers or methods? And why are my exception codes 0x00000000?

I tried the method found here, but when I type in any of the memory addresses, the output is just that same memory address. Is this the most information I can get out of the crash logs, or is something wrong here?

like image 398
Snowman Avatar asked May 22 '12 17:05

Snowman


People also ask

How do you read Minecraft crash reports?

Understanding a Crash ReportHead to your Game Panel and to the left, press FTP File Access and log in. Once in FTP File Access, you will see a folder named `crash-reports`. Go ahead and click that. Looking inside of that directory you will notice a file or multiple files.

What does it mean to Symbolicate?

Symbolication is the process of converting them into human readable, class/method names, file names, and line numbers.


1 Answers

To symbolicate the crash report you need the dSYM package of that exact build. I guess this was a debug build that wasn't archived, so the dSYM also got overwritten the next time you build the app. This is why the organizer couldn't fully symbolicate the crash report.

The method you mentioned only works if the binary does not have symbols stripped, and even then it would not report the line numbers! So instead of using it against the app binary, rather use it with the dSYM. Maybe you are lucky and the new dSYM still has some helpful information.

atos -arch armv7 -o 'appname.app.dSYM' 0x0015b4a7

The crash itself could to be setting a NSDictionary value to e.g. a nil key.

like image 173
Kerni Avatar answered Sep 21 '22 18:09

Kerni