¿Cómo habilitar NSZombie en Xcode?
Tengo una aplicación que falla y no se puede rastrear el error. Puedo ver parte de lo que está sucediendo si depuro, pero no puedo determinar qué objeto es "zombi".
¿Alguien sabe cómo habilitar NSZombie en Xcode 4?
Las variables de entorno ahora son parte del "esquema".
Para editar el esquema y activar zombies:
En el menú "Producto", seleccione "Esquema" > "Editar esquema...".
Vaya a la etapa "Ejecutar Foo.app" en el panel izquierdo y a la pestaña "Argumentos" a la derecha.
Agregue
NSZombieEnabled
a la sección "Variables de entorno" y establezca el valor enYES
, como podría hacerlo en Xcode 3.
En Xcode 4.1 y superiores , también hay una casilla de verificación en la pestaña "Diagnóstico" de la etapa "Ejecutar" para "Habilitar objetos zombies".
Con Xcode 6.4:
Encontré el mismo problema al solucionar problemas de EXC_BAD_ACCESS y tuve dificultades para encontrar la configuración con Xcode 4.2 (el último que viene con iOS5 SDK). Apple sigue moviendo cosas y las configuraciones ya no están donde solían estar.
Afortunadamente, lo encontré y funciona para el dispositivo, no solo para el Simulador. Debe abrir el menú Producto en Xcode, seleccionar Editar esquema y luego elegir la pestaña Diagnóstico. Ahí tienes "Habilitar objetos zombies". Una vez seleccionado y ejecutado en el depurador, le indicará el objeto de doble liberación. ¡Disfrutar!
En breve
Product->Edit Scheme->Diagnostics-> Click Enable Zombie Objects
Producto > Perfil iniciará Instrumentos y luego debería haber una "Plantilla de seguimiento" llamada "Zombies". Sin embargo, esta plantilla de seguimiento solo está disponible si el destino de compilación actual es el simulador; no estará disponible si tiene el destino configurado en su dispositivo iOS.
Otra cosa a tener en cuenta es que no hay ningún instrumento Zombies real en la biblioteca de instrumentos. La plantilla de seguimiento de zombies en realidad consta del instrumento Asignaciones con la configuración de inicio "Habilitar detección NSZombie".
Es una simple cuestión de configurar una variable de entorno en su ejecutable (NSZombieEnabled = YES)
y luego ejecutar/depurar su aplicación normalmente. Si le envía un mensaje a un zombie, su aplicación fallará/se romperá para depurar y NSLog
enviarle un mensaje.
Para obtener más información, consulte esta página de CocoaDev: http://www.cocodev.com/index.pl?NSZombieEnabled
Además, este proceso será mucho más sencillo con el lanzamiento de 10.6 y las próximas versiones de Xcode e Instruments. Solo digo'. =)
Aparecerá Producto > Perfil, Instrumentos. Selecciona zombies del panel y vuélvete loco.
Vaya a Producto - Esquema - editar esquema - Argumentos - Variables de entorno establecidas NSZombieEnabled = YES