He estado depurando el infame error EXC_BAD_ACCESS durante unos días. NSZombieEnabled = SÍ no ofreció nada. La pila de llamadas era diferente cada vez que recibía el error, que era una vez cada 5 o 6 ejecuciones.Guard Malloc encontró el error EXC_BAD_ACCESS al instante. ¿Por qué no usar todo el tiempo?
Vi un consejo para habilitar guard malloc (que se encuentra en el editor de esquemas ahora para Xcode 4) en el sitio web de Lou Franco: Understanding EXC_BAD_ACCESS. Tan pronto como hice esto, mi programa se detuvo en la línea exacta que causaba este elusivo error.
De acuerdo con su descripción, guard malloc crea páginas separadas para cada malloc y borra toda la página cuando se libera la memoria, bloqueando así el programa cuando se accede a la memoria liberada. Para el desarrollo general, ¿por qué no debería mantener el guardia malloc todo el tiempo? Parece detectar ciertos tipos de errores de memoria fácilmente. Si no estoy probando la gestión de la memoria o el rendimiento específicamente, ¿hay alguna desventaja de su uso?