Tengo una aplicación que falla sin seguimiento de errores. Puedo ver parte de lo que está sucediendo si depuro, pero no puedo entender qué objeto es "zombie".
¿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 "Editar esquema".
Vaya a la etapa "Ejecutar Foo.app" en el panel izquierdo y la pestaña "Argumentos" a la derecha.
Agregue NSZombieEnabled
a la sección "Variables de entorno" y establezca el valor en YES
, como podría hacerlo en Xcode 3.
En Xcode 4.1 y superior , también hay una casilla de verificación en la pestaña "Diagnóstico" de la etapa "Ejecutar" para "Habilitar objetos zombis".
Con Xcode 6.4:
Encontré el mismo problema con la resolución de problemas EXC_BAD_ACCESS y tuve dificultades para encontrar la configuración con Xcode 4.2 (la última que viene con iOS5 SDK). Apple sigue moviendo cosas y la configuración ya no está donde solía estar.
Afortunadamente, lo encontré y funciona para el dispositivo, no solo para Simulator. Debe abrir el menú Producto en Xcode, seleccionar Editar esquema y luego elegir la pestaña Diagnóstico. Ahí tienes "Habilitar objetos Zombie". ¡Una vez seleccionado y ejecutado en el depurador, te indicará el objeto doblemente liberado! ¡Disfrutar!
En breve
fuente
Producto> Perfil lanzará Instrumentos y luego debería haber una "Plantilla de seguimiento" llamada "Zombis". Sin embargo, esta plantilla de rastreo 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.
También otra cosa a tener en cuenta es que no hay un instrumento Zombies real en la biblioteca de instrumentos. La plantilla de rastreo de zombies en realidad consiste en el instrumento de asignaciones con el conjunto de configuración de inicio "Habilitar detección de NSZombie".
fuente
Es una simple cuestión de configurar una variable de entorno en su ejecutable
(NSZombieEnabled = YES)
, y luego ejecutar / depurar su aplicación de manera normalNSLog
.Para obtener más información, consulte esta página de CocoaDev: http://www.cocoadev.com/index.pl?NSZombieEnabled
Además, este proceso será mucho más fácil con el lanzamiento de 10.6 y las próximas versiones de Xcode e Instruments. Solo digo'. =)
fuente
Producto> El perfil desplegará los instrumentos. Selecciona zombies del panel y enloquece.
fuente
Ir a Producto - Esquema - editar esquema - Argumentos - Conjunto de variables de entorno NSZombieEnabled = YES
fuente
En xcode 4.2
Ir a Producto -> editar esquema -> haga clic en Ejecutar yourappname.app -> Diagonostics -> Habilitar objeto Zombie.
fuente
Aquí hay un video y una explicación de cómo usar Instruments y NSZombie para encontrar y reparar fallas de memoria en iOS: http://www.markj.net/iphone-memory-debug-nszombie/
fuente
A partir de Xcode 3.2.5 y Snow Leopard (Mac OS X 10.6), puede ejecutar su código a través del instrumento Zombis:
Run > Run with Performance Tool > Zombies
. Eso le permite ver objetos particulares y sus conteos en una línea de tiempo.fuente
En Xcode 4.5.2, goto Producto -> Editar esquema -> y en la pestaña Diagnóstico, marque la casilla de verificación entre el Objetivo C y Habilitar objetos zombis y haga clic en Aceptar
fuente
Para habilitar el registro de Zombie, haga doble clic en el ejecutable en el grupo de ejecutables de su proyecto Xcode. En este punto, haga clic en la pestaña Argumentos y, en la
Variables to be set in the environment:
sección, cree una variable llamadaNSZombieEnabled
y establezca su valor enYES
.fuente
En XCode 4.0: para detectar NSZombie en instrumentos, seleccione el simulador como su objetivo (no puede detectar NSZomboe en el dispositivo). Ejecute Instrumentos (CMD + I) y seleccione la plantilla de rastreo "Zombies". Disfrutar.
fuente
En las preferencias de su ejecutable, agregue la variable de entorno
NSZombieEnabled
y establezca el valor enYES
.fuente
en su XCODE (4.3) al lado del botón de reproducción :) (ejecutar)
seleccionar: editar esquema
se abrirá la ventana de administración del esquema
haga clic en la pestaña Argumentos
debería ver: 1- Argumentos pasados en el lanzamiento 2- Variables de entorno
dentro del lugar (2- variables de entorno) Nombre: NSZombieEnabled
Valor: SÍ
Y está hecho ...
fuente
NSZombieEnabled se utiliza para depurar BAD_ACCESS,
habilite la variable de entorno NSZombiesEnabled de la hoja de esquemas de Xcode.
Click on Product⇒Edit Scheme to open the sheet and set the Enable Zombie Objects check box
Este video te ayudará a ver lo que estoy tratando de decir.
fuente