Estoy participando en un interesante choque que nunca puedo replicar en el simulador:

Exception Type:  EXC_BAD_ACCESS (SIGBUS)
Exception Codes: KERN_PROTECTION_FAILURE at 0x00000008
Crashed Thread:  0

Thread 0 Crashed:
0   libobjc.A.dylib                 0x3212e86c 0x3212c000 + 10348
1   StockTwits                      0x00016b06 0x1000 + 88838
2   Foundation                      0x30718422 0x306db000 + 250914
3   Foundation                      0x307183a4 0x306db000 + 250788
4   CFNetwork                       0x30933e74 0x30923000 + 69236
5   CFNetwork                       0x30927b70 0x30923000 + 19312
6   CFNetwork                       0x30927e62 0x30923000 + 20066
7   CFNetwork                       0x30927a60 0x30923000 + 19040
8   CFNetwork                       0x30927a12 0x30923000 + 18962
9   CFNetwork                       0x30927990 0x30923000 + 18832
10  CFNetwork                       0x3092790e 0x30923000 + 18702
11  CoreFoundation                  0x30352a86 0x302e1000 + 465542
12  CoreFoundation                  0x30354768 0x302e1000 + 472936
13  CoreFoundation                  0x30355504 0x302e1000 + 476420
14  CoreFoundation                  0x302fe8e4 0x302e1000 + 121060
15  CoreFoundation                  0x302fe7ec 0x302e1000 + 120812
16  GraphicsServices                0x31a776e8 0x31a74000 + 14056
17  GraphicsServices                0x31a77794 0x31a74000 + 14228
18  UIKit                           0x323272a0 0x32321000 + 25248
19  UIKit                           0x32325e10 0x32321000 + 19984
20  StockTwits                      0x00002fd4 0x1000 + 8148
21  StockTwits                      0x00002fa4 0x1000 + 8100

He NSZombies habilitado así como de la pila el registro. Corrió a través del analizador estático para asegurarse de que todos los objetos se conservan y se libera correctamente, aunque tengo la sensación de que aún está relacionado con retener/liberación.

Pensamientos?

No pasa un entero de valor 8 (0x00000008) en algún lugar de un puntero?
Puede explicar un poco más? Interesante…
Ver esta pregunta para obtener más información: stackoverflow.com/questions/1282428/…

OriginalEl autor Sheehan Alam | 2010-08-05

1 Comentario

  1. 2

    Debe ser desreferenciar un puntero NULL, otros que este accidente no ocurra. El Analizador Estático es una buena herramienta para obtener consejos sobre las cosas que estás haciendo mal. Sin embargo, no encontrar un error no significa que su programa está libre de errores. También convirtiendo en zombies no siempre ayuda. A veces es sólo un simple poca supervisión.

    El hecho de que el simulador no mostrar este problema no es decir demasiado. Al final es una máquina con un procesador diferente y una arquitectura diferente. Hay ocasiones donde la falsa código se ejecuta en una plataforma, pero se bloquea en la otra.

    Debe volver a symbolicate que el seguimiento de la pila y tener un vistazo de cerca a esa función, se estrellan. Si desea obtener más ayuda es probablemente el mejor para publicar algunos de los código aquí.

    Uno más de sugerencia: estos problemas son a menudo se propagan a través de varios métodos. El analizador sólo ve un método a la vez. Usted debe echar un vistazo a lo que sucedió a los objetos de la estrellarse método ANTES de que se entró.

    ¿Cómo puedo volver a symbolicate?
    La forma más fácil es no compila con las optimizaciones. Hacer una Depuración de configuración de compilación que contiene los símbolos de depuración. Para Symbolicating usted puede encontrar la respuesta aquí: stackoverflow.com/questions/1460892/…
    Para los lectores futuros, desreferenciar un puntero NULO NO es la única razón de este accidente ocurre, tal y como se indica en Apple documento The process attempted to access invalid memory, or it attempted to access memory in a manner not allowed by the memory's protection level (e.g, writing to read-only memory). También, este post muestra este tipo de excepción debido a un desbordamiento de pila.

    OriginalEl autor Max Seelemann

Dejar respuesta

Please enter your comment!
Please enter your name here