Cuando sobre la liberación de un puntero es posible que aparezca un error comoiPhone - depuración "puntero siendo liberado no fue asignado" errores
"puntero está liberando no se asignó"
Cuando se depura con el simulador, yo agregar un argumento de compilación MallocStackLogging = YES - esto me permite usar malloc_history en el terminal para rastrear donde he liberado un puntero.
Si elimino errores en el dispositivo con este argumento acumulación consigo todo tipo de errores de la consola "no puede crear archivos de registro de pila", etc.
Curiosamente, consigo algunos errores puntero sobre liberados que aparecen en el dispositivo, pero no en el simulador
¿Alguien ha tenido alguna experiencia rastreando estos utilizando el dispositivo?
Gracias!
yo no era capaz de conseguir que con estas direcciones exactas (en Xcode 4.2.1) - que tenía para ejecutar a través de Xcode, luego conecte los instrumentos mientras se estaba ejecutando. Tenía activado "Activar objetos Zombie" para mi esquema actual, y una vez que activé la excepción, los instrumentos se engancharon como un campeón y me llevaron a la historia de la dirección del zombi. Miré el rastro de la pila para la asignación inicial, y vi un '[liberación automática] innecesario que causaba la excepción. Herramienta impresionante! – Dov
El "cómo hacerlo" completo se muestra en el video de la WWDC de 2010 denominado "Sesión 311 - Análisis avanzado de memoria con instrumentos" a las 31:50. – brainray