2012-07-25 12 views
12

Me estoy haciendo a veces este informe de bloqueo:Cómo entender y resolver informe de bloqueo: SIGSEGV, SEGV_ACCERR

Name: SIGSEGV 
Reason: SEGV_ACCERR 
Stack Trace: 

0 MyApp 0x00070456 0x1000 + 455766 
1 MyApp 0x0007a34d 0x1000 + 496461 
2 MyApp 0x0007a4f1 0x1000 + 496881 
3 MyApp 0x000d31dd 0x1000 + 860637 
4 MyApp 0x00067f0f 0x1000 + 421647 
5 MyApp 0x0005ad69 0x1000 + 367977 
6 MyApp 0x000081e3 0x1000 + 29155 
7 MyApp 0x00008ae9 0x1000 + 31465 
8 CoreFoundation 0x35a547e4 __invoking___ + 68 
9 CoreFoundation 0x359af7b1 -[NSInvocation invoke] + 160 
10 Foundation 0x3556268f -[NSInvocationOperation main] + 114 
11 Foundation 0x354fb393 -[__NSOperationInternal start] + 862 
12 Foundation 0x35564793 __block_global_6 + 102 
13 libdispatch.dylib 0x348dec59 _dispatch_call_block_and_release + 12 
14 libdispatch.dylib 0x348e1817 _dispatch_worker_thread2 + 258 
15 libsystem_c.dylib 0x32e0edfb _pthread_wqthread + 294 

No entiendo este informe de bloqueo. Además, no sé cuándo está sucediendo esto.

¿Hay alguna manera de obtener más información sobre este bloqueo?

¿Cómo puedo resolver este problema?

+0

Debe simbolizar el informe de fallos, que convertirá las direcciones en la línea 0 a 7 en clases, métodos y números de línea significativos. Usualmente Xcode hace eso automáticamente si todavía tienes el binario de la compilación que causó el colapso. ¿Intentó importar el informe en el organizador de Xcode para que se simbolice? ¿Cómo obtuviste este informe? – Kerni

+0

@Kerni recibo el informe de fallas de crittercism.com. iam usando el crittercism SDK para iOS. Veo que la aplicación se bloquea en algunos dispositivos y obtiene el registro en mi publicación. Puedo descargar el informe, pero es un archivo de texto. cuando lo arrastro y lo dejo a xcode, abre el archivo de texto. ¿que debería hacer? – brush51

+0

@Kerni gracias por su respuesta. Lo he simbolizado y ahora tengo el punto donde se cuelga. por favor escríbalo como respuesta para que pueda marcarlo como respondí. – brush51

Respuesta

6

es necesario para sy mbolice el informe de fallos, que convertirá las direcciones de la línea 0 a 7 en clases, métodos y números de línea significativos. Usualmente Xcode hace eso automáticamente si todavía tienes el binario de la compilación que causó el colapso.

2

El error SIGSEV es un envío de la señal cuando se intenta obtener de memoria que no se le permite tocar

La mejor manera de resolver este problema es poner una línea de punto de interrupción y saltar por línea con el fin de encontrar la línea que es el problema

o también se puede poner un poco de registros de depuración para ver ¿Era es el problema

para entender lo SIGSEV o SEGV_ACCERR decir, usted puede buscar en Internet más información;)

+47

Mi búsqueda en internet me llevó aquí :( – Saltymule

+3

También busqué SIGSEV y me trajo aquí. En lugar de decirnos que busquemos en internet, no nos da ¿un resumen? –

+0

Esta respuesta podría arrojar algo de luz http://stackoverflow.com/a/25877766/192924 – Vamos

1

La pregunta es anterior pero hay una mejor manera que la respuesta de John Smith.

Actualmente, el mejor enfoque se ejecuta utilizando Profiler (en XCode: Product/Profile) utilizando la plantilla respectiva.
Lo más probable es que necesite utilizar la plantilla "Zombies", que ahora también es compatible con el dispositivo :), no solo en el emulador. Al usar esta herramienta, tiene más posibilidades de detectar el uso incorrecto de la memoria.

Cuestiones relacionadas