2012-09-24 14 views
7

Tengo un par de fallas sigsegv que vienen de crittercism, pero no estoy muy seguro de cómo empezar a depurar. La única línea de código que es mía es la llamada principal desde el inicio del hilo bloqueado.sigsegv crash en iphone de crittercism

Copia de seguimiento de la pila del subproceso estrellado de Crittercism:

Motivo:

24-Sep-12 02:38:14 PM SIGSEGV principal (main.m: 11)

Pila :

 
0 
0 libobjc.A.dylib 0x356265b0 objc_msgSend + 15 
1 
1 UIKit 0x3861c313 + 1310 
2 
2 UIKit 0x386337cf + 206 
3 
3 UIKit 0x385ef80b + 258 
4 
4 QuartzCore 0x34f56d63 + 214 
5 
5 QuartzCore 0x34f56901 + 460 
6 
6 QuartzCore 0x34f57835 + 16 
7 
7 QuartzCore 0x34f5721b + 238 
8 
8 QuartzCore 0x34f57029 + 316 
9 
9 UIKit 0x386786e5 + 572 
10 
10 UIKit 0x386784a3 + 66 
11 
11 UIKit 0x38677391 + 1464 
12 
12 UIKit 0x385ed1ef + 2458 
13 
13 UIKit 0x385ec6d5 + 72 
14 
14 UIKit 0x385ec123 + 6154 
15 
15 GraphicsServices 0x3779f5a3 + 590 
16 
16 CoreFoundation 0x372f0683 + 14 
17 
17 CoreFoundation 0x372efee9 + 212 
18 
18 CoreFoundation 0x372eecb7 + 646 
19 
19 CoreFoundation 0x37261ebd CFRunLoopRunSpecific + 356 
20 
20 CoreFoundation 0x37261d49 CFRunLoopRunInMode + 104 
21 
21 GraphicsServices 0x3779e2eb GSEventRunModal + 74 
22 
22 UIKit 0x38640301 UIApplicationMain + 1120 
23 
23 MyApp 0x35bf main (main.m:11) 
+0

Además, tengo muchos otros choques extraños. ¿Puede ser porque el sistema cierra la aplicación después de una advertencia de memoria baja? – Murlakatam

Respuesta

0

En primer lugar, deberá "simbolizar" el registro de bloqueo. Hay muchas páginas web para instruirlo sobre eso.

Dado que esta pila termina en objc_msgSend, la causa más probable es un puntero colgante.

Para eliminar errores, recomiendo usar NSZombies. Si está probando en el simulador, puede intentar con "Guard malloc".

0

Este bloqueo se produce al invocar un método en un puntero a un objeto que ya fue desasignado. Es un error de recuento de ref muy común en algún lugar de su código que se mantiene en los elementos de UIKit. Pero, lo que debes hacer en la práctica es subir tu archivo .DSYM a la crítica. Se puede hacer manualmente a través del sitio web o a través de Web API call como parte de su proceso de compilación automático.