Reputation: 7283
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
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
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
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