Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

iOS crash log, backtrace not available

Tags:

ios

crash

Summary

Since the last update of our app was released, many users started complaining about the app not starting anymore. We received a crash log and console log from 2 different users, as well as a video from the crash.

Our app does not crash on every device, but when it does it crashes every single time within a second of tapping the icon (the video shows this as well as the phone of a friend).

The crash log is very weird, for it does not contain a backtrace and the frame pointer (R7) is 0x00000000. We didn't change much for this update and nothing we changed could corrupt the stack like this. Furthermore, reinstalling the app fixes the issue. This leads us to believe the error is not in our code, but in the binary which might have become corrupted somewhere.

Details

According to some users our app crashes on startup since the last update. We are unable to reproduce this issue but received crash logs from one the users. The log comes from the harddrive of the user (~/Library/Logs/CrashReporter/MobileDevice/). I've seen the same thing directly from the phone of a friend who experiences the same issue.

This crash appears to occur as soon as our app receives control from iOS (see update). However, the crash logs contains no backtrace and states an error occurred on an unknown thread. I tried symbolicating the log, but obviously there is nothing to symbolicate.

It appears to be some kind of nullpointer error, but why no backtrace? What could cause this type of error and what can I do to reproduce/solve it?

Incident Identifier: 984C8208-F4B4-4325-90B3-C9BE371E1A12
CrashReporter Key:   c512972e5cd00e75d8d7a6ddb59ff9a08946fd7b
Hardware Model:      iPad3,3
Process:         MyApp [3224]
Path:            /var/mobile/Applications/A0AEAA1D-7E5D-4BDC-8C9F-EA5FF4595059/MyApp.app/MyApp
Identifier:      MyApp
Version:         ??? (???)
Code Type:       ARM (Native)
Parent Process:  launchd [1]

Date/Time:       2012-10-18 09:27:06.158 +0200
OS Version:      iOS 6.0 (10A403)
Report Version:  104

Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x00000000
Highlighted Thread:  0

Backtrace not available

Unknown thread crashed with ARM Thread State (32-bit):
    r0: 0x000e64e0    r1: 0x7f8940c0      r2: 0x00000000      r3: 0x3c56cb88
    r4: 0x2fd1bd34    r5: 0x00000000      r6: 0x00000000      r7: 0x00000000
    r8: 0x2fd1bd3c    r9: 0x3c5688a8     r10: 0x00000000     r11: 0x00000000
    ip: 0x80000028    sp: 0x2fd1bd40      lr: 0x2fe9a8d7      pc: 0x000e64e0
  cpsr: 0x60000010

Binary Images:
   0xe5000 -   0x170fff +MyApp armv7  <15fd2c3131d03790bcd321411a241390> /var/mobile/Applications/A0AEAA1D-7E5D-4BDC-8C9F-EA5FF4595059/MyApp.app/MyApp
0x2fe96000 - 0x2feb6fff  dyld armv7  <75594988728831d98e1f7c4c7b7ca29d> /usr/lib/dyld
[...]

Update

A video sent to me by the same user indicates the app crashes even before the intro animation starts. So before the app is actually running (or one of the first lines of code our app runs).

In ARMv6/7 architecture, the R7 register holds the frame pointer. It should point to the previous stack frame, but is 0x00000000 in our case. A lot of registers are null actually. What could possibly cause this?

Also, the crashing is very consistent; it crashes every time within a second of tapping the icon. At least for this particular user. We've had more, but less specific, reports of the app "not starting". Re-installing the app fixes any problem the user had.

The console log doesn't show much either, just this:

It's starting to sound very much like updating through the App Store corrupts the binary, but only on updating:

http://www.pcworld.com/article/258827/updated_apps_crashing_heres_what_you_need_to_know.html

http://www.marco.org/2012/07/04/app-store-corrupt-binaries

I've sent a request to Apple's technical service to help out on this. I'll report back here.

Apple Technical Service update

I've posted a bug report, they requested a console log of the time of crash. I've supplied them one, which to my understanding doesn't contain much of use. Except:

2012-10-23 09:14:18 +0000 backboardd Application 'UIKitApplication:com.company.myapp[0xdd31]' exited abnormally with signal 11: Segmentation fault: 11

The technical department doesn't know what to do about this issue either, but advised us NOT to upload a new binary without any code changes. There is no way to test if the issues goes away (wtf) and if it doesn't work it will upset users even more.

Still waiting for the answer to my bug report...

like image 649
Jeroen Bouma Avatar asked Oct 18 '12 14:10

Jeroen Bouma


People also ask

How do I find out which app is causing problems on my iPhone?

Open the Console app, from Applications > Utilities in Finder. Select Crash Reports. Locate crash reports for your app in the list. Logs are listed by your app's binary name.


1 Answers

After contacting Apple Tech Support we were asked to file a bug report describing this issue. We've uploaded the crash report, console log, the archive from Xcode of this version and the IPA file (App Store file) of this version from iTunes.

After waiting for about a week we received the following email from Tech Support today:

Hello,

I wanted to let you know that a fix is in place for the issue that was causing crashes for customers who installed updates to your app.

Customers who were experiencing crashes after installing an update can fix the problem by updating the app again in the App Store. This will install a fixed version of the app.

An update to your app should appear in the App Store. Updating will re-install the current version of the app, and fix any crashes related to bad installs. All of the app's saved data will be unaffected by the update.

Please let me know if you are not seeing an update for your app, or are still seeing crashes after installing the update.

If you have concerns about any reviews your app received as a result of this issue, please contact the the store team directly at http://itunesconnect.apple.com/WebObjects/iTunesConnect.woa/wa/jumpTo?page=contactUs&contactfaq=customerreviewremovalrequest and reference ticket number [my number].

We checked with a friend who had the crashing version of the app installed. He confirmed he downloaded the update and this fixed the issue. The update Apple created does not show up in iTunes Connect so far, but it obviously works.

I'm pleased with the service Apple provided. Things do occasionally go wrong I guess, even the Apple gods make mistakes. Too bad our users aren't always that forgiving (though the majority is). It seems Apple even removed all the 1 star reviews for us, without asking. We can't check it at the moment, because AppFigures is currently down due to hurricane Sandy...

like image 139
Jeroen Bouma Avatar answered Oct 20 '22 12:10

Jeroen Bouma