2011-04-21 13 views

Respuesta

10

Primero de todo, abra el depurador después del bloqueo y mire la pila.

Además de eso, puede habilitar NSZombieEnabled para el ejecutable cuando aparezcan esos errores vagos de acceso incorrecto.

depurador con StackTrace (arriba a la izquierda ventana), XCode3

enter image description here

StackTrace Xcode4

enter image description here

+0

+1 para capturas de pantalla de ambos Xcode 3 y 4. – Jasarien

+0

NSZombieEnabled es genial. Realmente puede salvarte en algunos de estos bloqueos inexplicables al azar. – Dancreek

0

Determinar en qué evento la aplicación se bloquea. Por ejemplo, si la aplicación se bloquea al hacer clic en un UIButton, puede poner un punto de interrupción en la acción y recorrer las líneas de código para ver en qué línea ocurre el bloqueo. A veces, cuando no hay un registro de bloqueo en el bloqueo de la aplicación, la depuración a través de este método resulta útil.

Supongo que esto es un problema de memoria.

+1

Estoy seguro de que es un problema de memoria/enhebrado, pero tenemos demasiados códigos para poner puntos de ruptura. ¿Hay ** otra ** otra forma, por favor? –

+0

@Maciej Swic: Mismo problema con mi amigo. Mi aplicación se cuelga después de unas 5 líneas de registros de advertencia de memoria con el nivel 1 y 2 :(¿De otra manera, por favor? – mysticboy59

0

a veces también me pasa a mí ... la aplicación se cuelga sin que ningún mensaje de error se publique en los registros. El 95% de las veces es porque no liberaría algo o liberaría algo y accedería a él (que normalmente crearía un registro) ... examine su código y vea si está liberando correctamente y utilizando la opción de liberación automática donde sea necesario ...

5

Puedo reproducir este tipo de comportamiento de forma continua con nuestra aplicación. Utiliza ARC, así que estoy bastante seguro de que nada se supera, y tenemos zombies habilitados. Xcode dirá "En pausa" en lugar de mostrar una lista de hilos, el botón "Continuar" está activo, pero no hace nada, e ingresando bt en el indicador (gdb) dice Sin pila.

Esto me está volviendo loco!

Cuestiones relacionadas