2012-03-02 10 views
5

Estoy teniendo (en mi opinión) un problema muy difícil en mi código. Se bloquea aleatoriamente en diferentes lugares del código. El proyecto es un proyecto ARC.ios Detección de zombis

Así que mi programa se bloquea occaisonally con estos mensajes:

malloc: *** error for object 0xd2dd8b0: incorrect checksum for freed object - object was probably modified after being freed. 
*** set a breakpoint in malloc_error_break to debug 

ya que establece un punto de interrupción para malloc_error_break pero no recibe ninguna información de ella. Cuando el código falla, XCode me muestra el lugar en el código donde sucede. Pero como ya dije, los bloqueos son aleatorios y no ocurren siempre. Pero parece como si los choques estuvieran concentrados en una línea particular en el código.

Ahora, quería depurarlo usando los instrumentos que vienen con xcode. Después de buscar en Google, encontré lo siguiente en stackoverflow: How do I set up NSZombieEnabled in Xcode 4? y Xcode malloc error.

El primer enlace describe cómo iniciar la detección de zombies fuera de xcode haciendo clic en el botón ejecutar en xcode y seleccionando "Perfil". El problema que tengo es que no puedo encontrar "Zombies" al elegir la plantilla para el documento de rastreo en mi versión de xcode (4.2). Pero si inicio Instruments fuera de xcode (por ejemplo, desde el buscador), puedo elegir zombies.

bien, aquí es lo que hice:

1) Instrumentos de inicio del buscador y Elegir perfil "Zombies".

2) Inicie la aplicación iphone desde xcode en el simulador de iphone (ejecución normal (sin perfil ni depuración)).

3) En Instrumentos "Elegir destino" -> "Adjuntar para procesar" -> "Simulador de iPhone (57529)".

4) Instruments comienza a recod algo (no puedo entender lo que hace).

5) Comience a jugar con la aplicación hasta que se cuelgue.

, finalmente, la aplicación se bloquea y aquí está una captura de pantalla de los instrumentos después de chocar la aplicación: enter image description here

Mis preguntas:

1) ¿Es Zombies adecuada para mi problema o debería utilizar otra herramienta analyizes?

2) ¿Qué me dice el instrumento en su salida después de bloquearse?

Respuesta

6

A juzgar por su descripción del problema, su bloqueo es causado por algo además de acceder a un objeto zombie. Si la aplicación tiene acceso a un objeto desasignado (zombi), Instrumentos muestra un mensaje como el siguiente cuando utilice la plantilla Zombis:

enter image description here