Depuración de objetos lanzados en exceso, problema con NSZombie

EDITAR: ¡He encontrado la causa de este accidente! bbum señaló que los desbordamientos del búfer son una causa muy común de esto, así que miré el único tipo de búfer malloc que tenía:

closedList = (AINavigationCell **)malloc(baseCells.count * sizeof(AINavigationCell *));

Más tarde estaba sobrescribiendo datos más allá de los límites de la matriz, que deberían haber sido mucho más grandes quebaseCells.count. Gracias bbum!

Pregunta: Tengo un reproductorEXC_BAD_ACCESS duranteNSAutoreleasePool -drain, que parece indicar que estoy liberando en exceso un objeto. Entonces habilitoNSZombie, pero el programa ya no se bloquea. Tampoco obtengo ninguna información registrada en la consola. Si apago NSZombie, el accidente regresa. ¿Cuál es el significado de este? Pensé que NSZombies se usaban para abordar exactamente este tipo de problema. Si NSZombie no ayuda, ¿hay otra forma de interrogar a este objeto sobre liberado?

Además, el bloqueo no se puede reproducir en Simulator, por lo que no puedo usar Instrumentos con NSZombie.

Seguir es la traza en el punto de choque.

#0  0x31ac8bc8 in _cache_fill ()
#1  0x31acaf8e in lookUpMethod ()
#2  0x31ac8780 in _class_lookupMethodAndLoadCache ()
#3  0x31ac859a in objc_msgSendSuper_uncached ()
#4  0x328014f0 in -[__NSArrayReverseEnumerator dealloc] ()
#5  0x327b1f7a in -[NSObject(NSObject) release] ()
#6  0x327b63c8 in CFRelease ()
#7  0x327b58de in _CFAutoreleasePoolPop ()
#8  0x320e132c in NSPopAutoreleasePool ()
#9  0x30899048 in CAPopAutoreleasePool ()
#10 0x30902784 in CA::Display::DisplayLink::dispatch ()
#11 0x309027ea in CA::Display::IOMFBDisplayLink::callback ()
#12 0x30076bfa in IOMobileFramebufferVsyncNotifyFunc ()
#13 0x333dee6a in IODispatchCalloutFromCFMessage ()
#14 0x327e8be6 in __CFMachPortPerform ()
#15 0x327e06fe in __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ ()
#16 0x327e06c2 in __CFRunLoopDoSource1 ()
#17 0x327d2f7c in __CFRunLoopRun ()
#18 0x327d2c86 in CFRunLoopRunSpecific ()
#19 0x327d2b8e in CFRunLoopRunInMode ()
#20 0x3094a4aa in GSEventRunModal ()
#21 0x3094a556 in GSEventRun ()
#22 0x32c14328 in -[UIApplication _run] ()
#23 0x32c11e92 in UIApplicationMain ()
#24 0x00002556 in main (argc=1, argv=0x2fdff660) at /Users/hyn/Desktop/MyProject-trunk/main.m:14

Respuestas a la pregunta(1)

Su respuesta a la pregunta