Ladislav
Ladislav

Reputation: 7283

Getting to the bottom of a crash

Here is the crash report, the only entry of my app are the last two lines of the Thread 0 that crashed. Is it possible to get to the bottom of this crash?

CrashReporter Key:   4cc3bf614179cfc630ec151430177d3d47175000
Hardware Model:      iPad2,1
Process:         MyApp [750]
Path:            /var/mobile/Applications/96D92A43-EA51-4988-88ED-AFDF005995DF/MyApp.app/MyApp
Identifier:      MyApp
Version:         ??? (???)
Code Type:       ARM (Native)
Parent Process:  launchd [1]

Date/Time:       2011-11-20 09:19:34.803 -0600
OS Version:      iPhone OS 5.0.1 (9A405)
Report Version:  104

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

Last Exception Backtrace:
(0x37ee18bf 0x37a2d1e5 0x37ee17b9 0x37ee17db 0x35178cab 0x15b53 0x12ded 0x319c27ff 0x2c4b 0x3520550f 0x37ead577 0x37e390cf 0x351793fb 0xb66d 0x31a3c565 0x31ab4ce7 0x35211943 0x37eb5a63 0x37eb56c9 0x37eb429f 0x37e374dd 0x37e373a5 0x37c0efcd 0x319b7743 0x2585 0x2550)

Thread 0 name:  Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0   libsystem_kernel.dylib          0x3054232c 0x30531000 + 70444
1   libsystem_c.dylib               0x379e3f54 0x37996000 + 319316
2   libsystem_c.dylib               0x379dcfe4 0x37996000 + 290788
3   libc++abi.dylib                 0x3043ef64 0x30438000 + 28516
4   libc++abi.dylib                 0x3043c346 0x30438000 + 17222
5   libobjc.A.dylib                 0x37a2d2dc 0x37a24000 + 37596
6   libc++abi.dylib                 0x3043c3be 0x30438000 + 17342
7   libc++abi.dylib                 0x3043c44a 0x30438000 + 17482
8   libc++abi.dylib                 0x3043d81e 0x30438000 + 22558
9   libobjc.A.dylib                 0x37a2d22e 0x37a24000 + 37422
10  CoreFoundation                  0x37e3753e 0x37e28000 + 62782
11  CoreFoundation                  0x37e3739e 0x37e28000 + 62366
12  GraphicsServices                0x37c0efc6 0x37c0b000 + 16326
13  UIKit                           0x319b773c 0x31986000 + 202556
14  MyApp                       0x0000257e main (main.m:14)
15  MyApp                       0x00002548 start + 32


Thread 1 name:  Dispatch queue: com.apple.libdispatch-manager
Thread 1:
0   libsystem_kernel.dylib          0x305323b4 0x30531000 + 5044
1   libdispatch.dylib               0x30a9df74 0x30a9a000 + 16244
2   libdispatch.dylib               0x30a9dc92 0x30a9a000 + 15506

Thread 2:
0   libsystem_kernel.dylib          0x30542cd4 0x30531000 + 72916
1   libsystem_c.dylib               0x379a030a 0x37996000 + 41738
2   libsystem_c.dylib               0x379a009c 0x37996000 + 41116

Thread 3:
0   libsystem_kernel.dylib          0x30542cd4 0x30531000 + 72916
1   libsystem_c.dylib               0x379a030a 0x37996000 + 41738
2   libsystem_c.dylib               0x379a009c 0x37996000 + 41116

Thread 4 name:  WebThread
Thread 4:
0   libsystem_kernel.dylib          0x30532010 0x30531000 + 4112
1   libsystem_kernel.dylib          0x30532206 0x30531000 + 4614
2   CoreFoundation                  0x37eb541c 0x37e28000 + 578588
3   CoreFoundation                  0x37eb4154 0x37e28000 + 573780
4   CoreFoundation                  0x37e374d6 0x37e28000 + 62678
5   CoreFoundation                  0x37e3739e 0x37e28000 + 62366
6   WebCore                         0x3290e128 0x32866000 + 688424
7   libsystem_c.dylib               0x379a5c16 0x37996000 + 64534
8   libsystem_c.dylib               0x379a5ad0 0x37996000 + 64208

Thread 0 crashed with ARM Thread State:
    r0: 0x00000000    r1: 0x00000000      r2: 0x00000001      r3: 0x00000000
    r4: 0x00000006    r5: 0x3f7c2ce8      r6: 0x00000002      r7: 0x2fdffa6c
    r8: 0x00000001    r9: 0x00000000     r10: 0x00000000     r11: 0x35cf9201
    ip: 0x00000148    sp: 0x2fdffa60      lr: 0x379e3f5b      pc: 0x3054232c
  cpsr: 0x000f0010

Upvotes: 1

Views: 6811

Answers (3)

Kerni
Kerni

Reputation: 15339

You need to symbolicate the "Last Exception backtrace" to find out where in your app that crash happened.

To do that open terminal and go to the directory where the dSYM of that app version is located:

atos -arch armv7 -o your.app.dSYM/Contents/Resource/DWARF/binary 0x15b53 0x12ded 0x2c4b 0xb66d 

Replace your.app.dSYM with the actual filename and binary with the filename inside the dSYM package in this directory) using the addresses in the apps address range (which you can find lower in the crash report below Binary Images). I added the ones which seem to be in it.

You can catch those crash reports yourself by using the open source PLCrashReporter framework and some other tools/services on top of it. Some even support automatic symbolication. I mentioned some options in this answer: https://stackoverflow.com/q/8242215/474794

For your kind of crash, it is important to know the last exception backtrace, or even other than the main thread. Only PLCrashReporter based solutions will provide you the information for that!

Upvotes: 3

eric.mitchell
eric.mitchell

Reputation: 8855

On a general practicality note, if you are looking for a better way to test your apps, (before release) I would strongly suggest TestFlight: https://testflightapp.com/

It permits 'on-the-fly' beta testing, and gives detailed crash reports such as this:

Device Name: iPhone Model: iPhone 4 Version: 5.0 Language: en_US (English) Carrier: Verizon Timezone: EST Architecture: armv7 Connection State: Cellular Active

Exception reason -[__NSCFArray objectAtIndex:]: index (0) beyond bounds (0)

Stacktrace (7) 0 Trail Tracker 0x0007ad89 +[TFCrashHandler backtrace] + 429

1 Trail Tracker 0x0007afc7 TFHandleExceptions + 35

2 CoreFoundation 0x34681987 __handleUncaughtException + 74

3 libobjc.A.dylib 0x3678c2d1 _objc_terminate + 128

4 libc++abi.dylib 0x372993c5 _ZL19safe_handler_callerPFvvE + 76

5 libc++abi.dylib 0x37299451 _ZdlPv + 0

6 libc++abi.dylib 0x3729a825 __cxa_current_exception_type + 0

7 libobjc.A.dylib 0x3678c235 objc_exception_rethrow + 12

8 CoreFoundation 0x345d7545 CFRunLoopRunSpecific + 404

9 CoreFoundation 0x345d73a5 CFRunLoopRunInMode + 104

10 GraphicsServices 0x34d4bfed GSEventRunModal + 156

11 UIKit 0x3613e743 UIApplicationMain + 1090

12 Trail Tracker 0x0001738b main (main.m:14)

13 Trail Tracker 0x00017344 start + 40

There is a lot that you can do with TestFlight, so check it out :)

PS: It's not my product, so sorry if it seems like I'm advertising/spamming. It's not my product, I just like it a lot. I thought that it pertained to this topic, due to the nature of the question. Cheers!

Upvotes: 0

Liftoff
Liftoff

Reputation: 25392

Since the error is SIGABRT, I would suggest checking all of your variables for leaks. I got this error all of the time when I was first working on my applications.

The best way to check:

Open Finder>Macintosh HD>Developer>Applications>Instruments

In XCode, rather than running the app, select Profile with Instruments open. Instruments will then pop up and ask you what to analyze. From the iOS Simulator submenu, select Memory>Zombies add and record. Run through your application to the point where your app crashed and Instruments should tell you what was accessed at that time.

Hope this helps

Upvotes: 1

Related Questions