Właśnie opublikowałem aplikację w AppStore z raportem o awariach Crittercism i otrzymałem sporo raportów o awariach związanych z błędem SIGSEGV. Crittercism daje mi StackTrace i kilka przydatnych szczegółów na temat statystyk użytkowania itp., Ale nadal jestem zdumiony tymi symbolizowanymi śladami stosu. Mam kilka pytań ogólnie o tego rodzaju rzeczy -SIGSEGV SEGV_ACCERR Raporty o awarii - co robić?
Wiele klas i metod w ślad stosu nie są używane nawet w mojej aplikacji (według mojej wiedzy), która mnie prowadzi uwierzyć, że te awarie są spowodowane prywatnymi interfejsami API firmy Apple. Rzuć okiem na ślad stosu u dołu tego pytania. Jak rozpoznać awarię mojej aplikacji, jeśli wszystkie metody i klasy zawarte w raporcie o awariach nie są bezpośrednio implementowane w moim kodzie?
Co oznaczają
+
znaki z numerami na końcu każdej linii w rozbitego wątku oznaczają?Większość Q/A na StackOverflow że poprosić o awarii SIGSEGV powiedzieć, że są one spowodowane wyciekiem pamięci lub problemów, jednakjak mogę mieć awarię z powodu problemu pamięci, jeśli używam w ARC mój projekt iOS? Czy ARC nie powinna zarządzać wszystkimi tymi rzeczami?
Co należy zrobić, jeśli nie mogę zreplikować błędu/awarii?
Czy istnieje sposób, aby naprawdę przeczytać a StackTrace? CZY w ogóle jest coś, co byłoby pomocne w zrozumieniu tego, co się dzieje?
Oto StackTrace z głównym wątku Zawieszanie Raport z Crittercism że kwestia ta dotyczy:
Thread: Unknown Name (Crashed)
0 UIKit 0x37307a22 -[UIView(CALayerDelegate) actionForLayer:forKey:] + 138
1 QuartzCore 0x38fdfff7 -[CALayer actionForKey:] + 75
2 QuartzCore 0x38fdffa7 _ZL12actionForKeyP7CALayerPN2CA11TransactionEP8NSString + 59
3 QuartzCore 0x38fdfe93 _ZN2CA5Layer12begin_changeEPNS_11TransactionEjRP11objc_object + 131
4 QuartzCore 0x38fdab87 _ZN2CA5Layer6setterEj12_CAValueTypePKv + 183
5 QuartzCore 0x39007057 -[CALayer setBackgroundColor:] + 35
6 UIKit 0x3731ef51 -[UIView(Internal) _setBackgroundCGColor:withSystemColorName:] + 1021
7 APP NAME 0x000a301d 0x00086000 + 118813
8 libdispatch.dylib 0x3962511f _dispatch_call_block_and_release + 11
9 libdispatch.dylib 0x39628ecf _dispatch_queue_drain$VARIANT$mp + 143
10 libdispatch.dylib 0x39628dc1 _dispatch_queue_invoke$VARIANT$mp + 41
11 libdispatch.dylib 0x3962991d _dispatch_root_queue_drain + 185
12 libdispatch.dylib 0x39629ac1 _dispatch_worker_thread2 + 85
13 libsystem_c.dylib 0x3824da11 _pthread_wqthread + 361