MyApp fonctionne bien dans 98% des cas, mais parfois, il y a un crash. Et c'est tellement aléatoire.
Le rapport d'incident montre ce qui suit.
Thread : Crashed: com.Apple.main-thread
0 libobjc.A.dylib 0x3b1ae626 objc_msgSend + 5
1 Foundation 0x310e2381 _netServiceMonitorCallBack + 104
2 CFNetwork 0x302ea3b5 _QueryRecordReply(_DNSServiceRef_t*, unsigned int, unsigned int, int, char const*, unsigned short, unsigned short, unsigned short, void const*, unsigned int, void*) + 324
3 libsystem_dnssd.dylib 0x3b7289d9 handle_query_response + 168
4 libsystem_dnssd.dylib 0x3b72773f DNSServiceProcessResult + 582
5 CFNetwork 0x302ea3e5 _SocketCallBack_Mon(__CFSocket*, unsigned long, __CFData const*, void const*, void*) + 20
6 CoreFoundation 0x30691189 __CFSocketPerformV0 + 580
7 CoreFoundation 0x3068efaf __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 14
8 CoreFoundation 0x3068e477 __CFRunLoopDoSources0 + 206
9 CoreFoundation 0x3068cc67 __CFRunLoopRun + 630
10 CoreFoundation 0x305f7729 CFRunLoopRunSpecific + 524
11 CoreFoundation 0x305f750b CFRunLoopRunInMode + 106
12 GraphicsServices 0x355336d3 GSEventRunModal + 138
13 UIKit 0x32f58871 UIApplicationMain + 1136
14 MyApp 0x0013f813 main (main.m:16)
Toutes ces méthodes sont internes. Je rencontre ces accidents sur iPad 4 sous iOS 7.1.2. Comment puis-je le clouer. Toutes les aides appréciées.
Ce crash est dû à un pointeur qui pend. Lorsqu'une variable ou un objet tente d'accéder à un objet déjà désalloué, ce blocage se produit.
C'est une vieille question, mais le crash de EXC_BAD_ACCESS KERN_INVALID_ADDRESS n'est pas dû à une fuite de mémoire, mais à une tentative d'accès à un objet désalloué. Etant donné que la mémoire de l'objet désalloué est peut-être maintenant occupée par un autre objet de type différent, la dernière ligne de la pile d'accidents peut être erronée car elle ne fait pas vraiment partie de votre chemin d'exécution programmé. Nous avons donc généralement besoin de rechercher la trace. un petit peu. Cependant, la trace de pile publiée par @Sj consiste essentiellement en des appels système, donc c'est très difficile. Si cela est généré dans une session de débogage, l'ajout d'un point d'arrêt "Toutes les exceptions" peut aider à générer une trace de pile plus informative.