KERN_INVALID_ADDRESS at 0x0000000000000000
I have developed an iPad app using Xcode 6.3.2. I submitted my app to the App Store for review, where it got rejected due to a crash. Next is the crash report from iTunes.
Incident Identifier: 88DD7F94-3382-4241-A0D7-C3E7F6D20737 CrashReporter Key: 9881ae0cc3b3fbfccfd0ce1496d2fa08fec08782 Hardware Model: xxx Path: /private/var/mobile/Containers/Bundle/Application/FDBBD67F-0EF7-43FB-80CB-8308A10A2D29/Vehicle Visuals.app/Vehicle Visuals Identifier: com.vehiclevisuals.Vehicle-Visuals Version: 2.0.0 (1.1.0) Code Type: ARM-64 (Native) Parent Process: launchd [1] Date/Time: 2015-06-12 12:33:57.988 -0700 Launch Time: 2015-06-12 12:22:14.581 -0700 OS Version: iOS 8.3 (12F69) Report Version: 105 Exception Type: EXC_BAD_ACCESS (SIGSEGV) Exception Subtype: KERN_INVALID_ADDRESS at 0x0000000000000000 Triggered by Thread: 0 Thread 0 name: Dispatch queue: com.apple.main-thread Thread 0 Crashed: 0 libobjc.A.dylib 0x0000000195da7bdc 0x195d8c000 + 113628 1 QuartzCore 0x00000001889fdc2c 0x1889ec000 + 72748 2 Vehicle Visuals 0x0000000100126828 0x1000ec000 + 239656 3 Vehicle Visuals 0x0000000100101e80 0x1000ec000 + 89728 4 UIKit 0x0000000189118778 0x1890a4000 + 477048 5 UIKit 0x0000000189116750 0x1890a4000 + 468816 6 UIKit 0x0000000189112000 0x1890a4000 + 450560 7 UIKit 0x00000001890b175c 0x1890a4000 + 55132 8 QuartzCore 0x00000001889f9e18 0x1889ec000 + 56856 9 QuartzCore 0x00000001889f4880 0x1889ec000 + 34944 10 QuartzCore 0x00000001889f4724 0x1889ec000 + 34596 11 QuartzCore 0x00000001889f3eb8 0x1889ec000 + 32440 12 QuartzCore 0x00000001889f3c38 0x1889ec000 + 31800 13 UIKit 0x0000000189137f8c 0x1890a4000 + 606092 14 UIKit 0x0000000189137ef0 0x1890a4000 + 605936 15 CoreFoundation 0x000000018462c2a0 0x18454c000 + 918176 16 CoreFoundation 0x000000018462922c 0x18454c000 + 905772 17 CoreFoundation 0x000000018462955c 0x18454c000 + 906588 18 CoreFoundation 0x00000001845552d0 0x18454c000 + 37584 19 GraphicsServices 0x000000018dc436f8 0x18dc38000 + 46840 20 UIKit 0x000000018911afa8 0x1890a4000 + 487336 21 Vehicle Visuals 0x000000010013a1cc 0x1000ec000 + 319948 22 libdyld.dylib 0x0000000196412a04 0x196410000 + 10756 Thread 1 name: Dispatch queue: com.apple.libdispatch-manager
According to the report, it crashes on OS version: iOS 8.3 (12F69). I tested my app on all simulators (iPad Air, iPad 2, iPad Retina) with the same configuration (iOS version 8.3 (12F69)) and also tested it on my device (iPad mini) with iOS version 8.3 (12F69), but didn I fell on my side. But it crashes on my iPad Air friend with the same iOS version (it gives the same crash report with a different invalid address as shown below)
Exception type: EXC_BAD_ACCESS (SIGSEGV) Exception subtype: KERN_INVALID_ADDRESS at 0x0000000000000020 Generated by topic: 0
I don't have an iPad Air so I can debug it with the device.
I also tried to generate a Symbolicated crash report with the following command.
xcrun atos -o VehicleVisuals 0x0000000000000020
But it just gives me the following hex code.
0x00000020 (in VehicleVisuals)
I am following Link for symbology.
I just can't seem to find out where the crashing problem actually is. Please can anyone help me?
source to share
EXC_BAD_ACCESS usually happens because you are sending an Obj-C message to the wrong memory address, which means that you are probably trying to access some deallocated object.
It can work on other devices because this object is not released at the same time.
I recently had a similar crash that happened due to the timer not being invalidated on the dealloc and when the target method was called, that object no longer existed.
You can try to include NSZombie objects and see if you find out which object gets deallocated. In xCode 6, you can enable them in Product> Scheme> Edit scheme> Diagnostics> Enable Zombie Objects.
In addition, there are many such errors that NSZombieEnabled cannot detect. Unfortunately, there is nothing magical to solve it. The second option is to run the application with tools (memory leaks) and see if you can get something. If that doesn't work, you will have to go through your code and check if you have the ability to access the remote object. Hope it helps.
Good luck!
source to share