7

We have been getting several crashes with our app and wanted to see if any of you might have some insight or had a similar experience. I have shared the crash log information below.

Running iOS 8.1. We have ran it through instruments, static analyzer, and still struggling to pin-point the issue.

QuartzCore
CA::release_objects(X::List<void const*>*)

13
Crashed: Thread
EXC_BAD_ACCESS KERN_INVALID_ADDRESS at 0x0042de0f48aa7488


Thread : Crashed: Thread
0  libobjc.A.dylib                0x0000000193debbdc objc_msgSend + 28
1  CoreFoundation                 0x0000000183561228 CFRelease + 524
2  QuartzCore                     0x0000000187788644 CA::release_objects(X::List<void const*>*) +         32
3  QuartzCore                     0x000000018778e498 -[CAAnimation dealloc] + 80
4  libobjc.A.dylib                0x0000000193df1724 (anonymous    namespace)::AutoreleasePoolPage::pop(void*) + 564
5  libobjc.A.dylib                0x0000000193df2754 (anonymous namespace)::AutoreleasePoolPage::tls_dealloc(void*) + 72
6  libsystem_pthread.dylib        0x00000001945fa3e0 _pthread_tsd_cleanup + 200
7  libsystem_pthread.dylib        0x00000001945fa0ac _pthread_exit + 140
8  libsystem_pthread.dylib        0x00000001945fb330 pthread_exit + 44
9  Foundation                     0x0000000184487000 -[NSObject(NSThreadPerformAdditions) performSelectorOnMainThread:withObject:waitUntilDone:]
10 Foundation                     0x0000000184555c24 __NSThread__main__ + 1096
11 libsystem_pthread.dylib        0x00000001945fbe80 _pthread_body + 164
12 libsystem_pthread.dylib        0x00000001945fbddc _pthread_body
Ahmed Salman Tahir
  • 1,783
  • 1
  • 17
  • 26
Jon
  • 71
  • 2
  • 1
    See CFRelease() - it means QuartzCore tried to release an object that is either nil, or it was previously released. I'd try running your app with Zombies enabled - that may help you find the problem (search hear for lots of advice on how to enable it). – David H Dec 23 '14 at 16:58
  • I have enabled Zombies but unfortunately it hasn't been very helpful. – Jon Dec 23 '14 at 17:20
  • What do you mean "hasn't been very helpful"? Do you just mean that _you_ couldn't understand it? What did the Zombies log message actually say? - Also, it's pretty clear that the problematic code here involves `performSelectorOnMainThread:withObject:waitUntilDone:` and some sort of animation; can't you find and show that code? – matt Dec 23 '14 at 17:45

1 Answers1

0

The problem here is that you are doing one extra release on an object which Core Animation was not expecting, so the problem is introduced in your code, but exposed when the animation framework does its clean up phase.

To solve this problem, use Profiling. Select Allocations profiler, and click record reference counts under Launch Configuration for Heap Allocations.

Then when the problem is hit, you will be able to see the allocation history, and one release will not be paired and has been issued from one of your source code files.

Faisal Memon
  • 2,711
  • 16
  • 30