2014-12-23 2 views
7

Мы получили несколько сбоев с нашим приложением и хотели узнать, может ли кто-нибудь из вас иметь представление или иметь аналогичный опыт. Я поделился информацией журнала сбоев ниже.Попытка исправления сбоя: QuartzCore - CA :: release_объекты (X :: Список <void const*> *)

Запуск iOS 8.1. Мы запускали его с помощью инструментов, статического анализатора и все еще пытаемся выявить проблему.

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 
+1

См. CFRelease() - это означает, что QuartzCore попытался освободить объект, который либо равен нулю, либо был ранее выпущен. Я бы попробовал запустить приложение с включенными Zombies - это может помочь вам найти проблему (поиск услышит много советов о том, как включить его). –

+0

Я включил Зомби, но, к сожалению, это не очень помогло. – Jon

+0

Что значит «не очень полезно»? Вы просто имеете в виду, что вы не могли этого понять? Что на самом деле говорило сообщение журнала Zombies? Кроме того, довольно ясно, что проблемный код здесь включает 'performSelectorOnMainThread: withObject: waitUntilDone:' и некоторую анимацию; Вы не можете найти и показать этот код? – matt

ответ

0

Проблема здесь состоит в том, что вы делаете один дополнительный выпуск на объект, который Core Animation не ожидал, поэтому проблема вводится в коде, но подвергается, когда каркас анимации делает ее чистой до фазы.

Для решения этой проблемы используйте профилирование. Выберите профилировщик Allocations и нажмите ссылку подсчета ссылок в разделе «Настройка запуска для распределений кучи».

Затем, когда проблема ударяется, вы сможете увидеть историю распределения, и один выпуск не будет спарен и был выпущен из одного из файлов исходного кода.