tags:

views:

209

answers:

2

A user of our app sent me the following crash log (already symbolicated):

Incident Identifier: 59D4D5E7-570A-4047-A679-3016B2A226C4
CrashReporter Key:   d8284d671ee22ad17511360ce73409ebfa8b84bb
Process:         .... [63]
Path:            /var/mobile/Applications/....
Identifier:      ...
Version:         ??? (???)
Code Type:       ARM (Native)
Parent Process:  launchd [1]

Date/Time:       2010-03-08 17:00:15.437 -0800
OS Version:      iPhone OS 2.2.1 (5H11a)
Report Version:  103

Exception Type:  EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x00000001, 0xe7ffdefe
Crashed Thread:  0

Thread 0 Crashed:
0   dyld                 0x2fe01060 dyld_fatal_error + 0
1   dyld                 0x2fe088d4 dyld::_main(mach_header
const*, unsigned long, int, char const**, char const**, char const**)
+ 3064
2   dyld                 0x2fe0196c
dyldbootstrap::start(mach_header const*, int, char const**, long) +
884
3   dyld                 0x2fe01048 _dyld_start + 32

Thread 0 crashed with ARM Thread State:
   r0: 0x2fe23ca0    r1: 0x00000000      r2: 0x2fe23ca0      r3:
0x00000000
   r4: 0x2ffff4e0    r5: 0x2ffff4bc      r6: 0x2fe005c0      r7:
0x2ffffb00
   r8: 0x00000004    r9: 0x2fe57cf0     r10: 0x2fe236c8     r11:
0x00000009
   ip: 0x0000018d    sp: 0x2ffff5b8      lr: 0x2fe088dc      pc:
0x2fe01060
 cpsr: 0x00000010

Binary Images:
0x2fe00000 - 0x2fe22fff  dyld ??? (???)
<f6a50d5f57a676b54276d0ecef46d5f0> /usr/lib/dyld

My app uses OpenFeint and PinchMedia analytics. For PinchMedia, I'm linking using their provided .a file, and for OpenFeint, I'm compiling their code (as per their guidelines). The frameworks / libs I'm linking are:

  • UIKit.framework (Weak)
  • MapKit.framework (Weak)
  • Foundation.framework
  • CoreGraphics.framework
  • OpenAL.framework
  • AudioToolbox.framework
  • libsqlite3
  • SystemConfiguration.framework
  • CoreLocation.framework
  • PinchMedia analytics
  • Security.framework
  • QuartzCore.framework
  • CFNetwork.framework

My base SDK is iPhone 3.0, and my Base OS Deployment Target is 2.2.1.

There are two things I find weird:

  1. The app crashes even before the main method is invoked.
  2. The crash log looks exactly like the one posted here: http://stackoverflow.com/questions/2368689/objective-c-iphone-app-exc-breakpoint-sigtrap

The user that sent me this crash is using a 2nd gen iPod Touch with OS 2.2.1. I wasn't able to reproduce the issue, but based on the comments in iTunes, it seems that more people is having the same issue.

A: 

We can't tell you much because we don't know what the symbols are in the crash report.

Follow these instructions to convert the crash report into a human readable format:

Given a crash report, the matching binary, and its .dSYM file, symbolication is relatively easy. The Xcode Organizer window has a tab for crash reports of the currently selected device. You can view externally received crash reports in this tab - just place them in the appropriate directory. This is the same as the Mac OS X directory described in the first section. It doesn't matter which device you have tethered, but the directory in which you place the crash report must be the directory for the tethered and selected device.

It is not necessary to place the binary and .dSYM file in any particular location. Xcode uses Spotlight and the UUID to locate the correct files. It is necessary, though, that both files be in the same directory and that this directory is one that is indexed by Spotlight. Anywhere in your home directory should be fine.

With out symbolication (gods what a word) the crash report is just gibberish.

TechZen
The report IS symbolicated. Without symbolication the first line says `0x2fe01060 0x2fe00000 + 4192` instead of `0x2fe01060 dyld_fatal_error + 0`
pgb
usually gives you a little more detail.
TechZen
The report is symbolicated, I'm having the *exact* same problem with a Universal app :/
coob
+1  A: 

I had the exact same problem. Solution: Weak link UIKit.framework

coob