2014-12-22 12 views
5

Qualcuno ha idea di cosa sta causando questo arresto anomalo?Errore SIGTRAP su iOS - AutoreleasePoolPage :: busted

Succede molto raramente.

I rapporti di arresto anomalo stanno arrivando tramite HockeyApp dal dispositivo. Non sono stato in grado di riprodurlo sul simulatore.

Tutte le idee sono molto apprezzate.

Exception Type: SIGTRAP 
Exception Codes: #0 at 0x197c73c10 
Crashed Thread: 0 

Thread 0 Crashed: 
0 libobjc.A.dylib      0x0000000197c73c10 _objc_trap() + 0 
1 libobjc.A.dylib      0x0000000197c73c80 _objc_fatal + 80 
2 libobjc.A.dylib      0x0000000197c8e7fc (anonymous namespace)::AutoreleasePoolPage::busted(bool) + 140 
3 libobjc.A.dylib      0x0000000197c8d54c (anonymous namespace)::AutoreleasePoolPage::pop(void*) + 88 
4 CoreFoundation      0x0000000187418f94 _CFAutoreleasePoolPop + 24 
5 UIKit        0x000000018bcd8c28 _wrapRunLoopWithAutoreleasePoolHandler + 72 
6 CoreFoundation      0x00000001874ee14c __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 28 
7 CoreFoundation      0x00000001874eb0d8 __CFRunLoopDoObservers + 356 
8 CoreFoundation      0x00000001874eb4b8 __CFRunLoopRun + 832 
9 CoreFoundation      0x00000001874191f4 CFRunLoopRunSpecific + 392 
10 GraphicsServices      0x00000001905a75a4 GSEventRunModal + 164 
11 UIKit        0x000000018bd4a784 UIApplicationMain + 1484 
12 MyAppName       0x00000001001794d4 main (main.mm:15) 
13 libdyld.dylib      0x00000001982e2a08 start + 0 

Thread 1: 
0 libsystem_kernel.dylib    0x00000001983e0c94 kevent64 + 8 
1 libdispatch.dylib     0x00000001982bb3b4 _dispatch_mgr_thread + 48 

Thread 2: 
0 libsystem_kernel.dylib    0x00000001983e0e7c mach_msg_trap + 8 
1 CoreFoundation      0x00000001874ed5cc __CFRunLoopServiceMachPort + 196 
2 CoreFoundation      0x00000001874eb520 __CFRunLoopRun + 936 
3 CoreFoundation      0x00000001874191f4 CFRunLoopRunSpecific + 392 
4 CFNetwork       0x0000000186f1d6a4 +[NSURLConnection(Loader) _resourceLoadLoop:] + 436 
5 Foundation       0x0000000188405c0c __NSThread__main__ + 1068 
6 libsystem_pthread.dylib    0x0000000198497e80 _pthread_body + 160 
7 libsystem_pthread.dylib    0x0000000198497ddc _pthread_start + 156 
8 libsystem_pthread.dylib    0x0000000198494fb0 thread_start + 0 

Thread 3: 
0 libsystem_kernel.dylib    0x00000001983fb498 __select + 8 
1 libsystem_pthread.dylib    0x0000000198497e80 _pthread_body + 160 
2 libsystem_pthread.dylib    0x0000000198497ddc _pthread_start + 156 
3 libsystem_pthread.dylib    0x0000000198494fb0 thread_start + 0 

Thread 4: 
0 libsystem_kernel.dylib    0x00000001983fbc78 __workq_kernreturn + 8 
1 libsystem_pthread.dylib    0x0000000198494fa8 start_wqthread + 0 

Thread 5: 
0 libsystem_kernel.dylib    0x00000001983fbc78 __workq_kernreturn + 8 
1 libsystem_pthread.dylib    0x0000000198494fa8 start_wqthread + 0 
+0

Stai creando i tuoi pool di rilascio automatico? Inoltre, guarda NSURLConnection, quindi questo è quasi sicuramente correlato al threading. Il mio consiglio è di creare un piccolo progetto dimostrativo che faccia solo queste NSURLCconnessioni il più vicino possibile al tuo codice reale (usando il tuo codice reale se possibile, quindi eseguilo continuamente fino al crash.) Se riesci a riprodurre lo schianto, stai bene il tuo modo di risolvere il problema Oppure potresti riuscire a diramare e adattare la tua vera app semplicemente usando continuamente il suo codice NSURLConnection –

+0

Non sto chiamando NSURLConnection direttamente nel mio codice Sebbene io abbia incluso HockeyApp. Potrebbe essere utilizzando NSURLConnection? Potrebbe anche includere i punti di interruzione delle eccezioni menzionati da danypata: non capisco completamente come funzionino gli interni di HockeyApp. –

+0

e sì sto creando pool di rilascio automatico In vari punti in cui ho un codice di loop che crea un molte variabili intermedie –

risposta

1

Ho risolto questo alla fine da refactoring il mio codice.

Avevo blocchi su cui mi trovavo per un menu di navigazione: l'idea era di chiamare il blocco quando si toccava un pulsante di menu.

Ho rifattorato i miei pulsanti del menu di navigazione per non fare più affidamento sui blocchi e questi errori AutoreleasePoolPage::busted sono scomparsi.

0

Arresti anomali anomali possono verificarsi quando il dispositivo non dispone di memoria libera disponibile sufficiente.

Di solito si verificano singoli arresti anomali in luoghi assolutamente diversi.

Sguardo allegato screenshot con informazioni incidente da una delle mie applicazioni

(sto usando Crashlytics per ottenere segnalazioni di crash, mostra anche informazioni sulla memoria libera)

enter image description here

enter image description here

enter image description here