¿Cómo habilitar NSZombie en Xcode?

Resuelto jason asked hace 13 años • 15 respuestas

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?

jason avatar Mar 22 '11 09:03 jason
Aceptado

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 NSZombieEnableda la sección "Variables de entorno" y establezca el valor en YES, 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:

Captura de pantalla

一二三 avatar Mar 22 '2011 04:03 一二三

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
Moshe Kravchik avatar Nov 16 '2011 12:11 Moshe Kravchik

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".

Shane Fitzgibbon avatar May 05 '2011 01:05 Shane Fitzgibbon

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 NSLogenviarle 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'. =)

Dave DeLong avatar Jul 31 '2009 15:07 Dave DeLong

Aparecerá Producto > Perfil, Instrumentos. Selecciona zombies del panel y vuélvete loco.

pseudosudo avatar Apr 04 '2011 13:04 pseudosudo

Vaya a Producto - Esquema - editar esquema - Argumentos - Variables de entorno establecidas NSZombieEnabled = YES

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

PJR avatar Dec 11 '2013 09:12 PJR