В аварийном потоке 10 есть только вызовы Apple Framework, но ничего из вашего приложения. Они будут символизировать, если в скрипте символизации есть символы iOS 5.0.1, доступные через Spotlight. DSYM ваших приложений не поможет для этой трассировки стека.
Так как тип исключения SIGSEGV , вы не найдете номер строки в потоке сбоя, который вызывает сбой. В вашем коде где-то (может быть где угодно!) Проблема с памятью, из-за которой приложение пытается получить доступ к адресу памяти, который на самом деле недействителен. Отсюда и авария.
Обозначение нити 10 дает следующий результат:
Thread 10 Crashed:
0 libobjc.A.dylib 0x31516fbc objc_msgSend + 16
1 Foundation 0x31970e1e __NSFinalizeThreadData + 1078
2 CoreFoundation 0x37a06a28 __CFTSDFinalize + 60
3 libsystem_c.dylib 0x35e506c8 _pthread_tsd_cleanup + 164
4 libsystem_c.dylib 0x35e50344 _pthread_exit + 116
5 libsystem_c.dylib 0x35e625c4 pthread_exit + 24
6 Foundation 0x318ec384 +[NSThread exit] + 4
7 Foundation 0x319705b8 __NSThread__main__ + 1072
8 libsystem_c.dylib 0x35e5ec16 _pthread_start + 314
9 libsystem_c.dylib 0x35e5ead0 thread_start + 0
obj_msgSend - еще один намек на проблему с памятью, и похоже, что это произошло после того, как вы запустили некоторый код в новом потоке. Так что вы можете проверить эти места в своем поточном коде. Возможно, вы обращаетесь к ивару, который уже выпущен в другом потоке.
В общем, лучший способ найти и решить проблемы с памятью, который я нашел, - это использовать среду тестирования и автоматизировать взаимодействие приложения, чтобы оно работало долго. Это также помогает автоматизировать его, снова и снова повторяя одно и то же взаимодействие с пользователем. Скорее всего, он выйдет из строя, но на этот раз его можно будет воспроизвести, чтобы вы могли запустить автоматизацию с приборами. Я с большим успехом использовал фреймворк KIF .