La debugging de XCode 4.2 en una vistaDidLoad o viewDidDisappear terminará en un EXC_BAD_ACCESS

La debugging de XCode 4.2 en una viewDidLoad o viewDidDisappear terminará en un EXC_BAD_ACCESS

Rompe ese punto de interrupción pero al continuar ("Continuar la ejecución del progtwig") devuelve: EXC_BAD_ACCESS (código = 1, dirección = 0x ….) en el Tema 1 (inicio de 0). Eso no sucedió en versiones anteriores.

Alguien que recibe el mismo error? Alguien sabe cómo lidiar con eso?

¡¡Gracias!!

El código para el ejemplo sería simple:

  - (void) viewDidDisappear:(BOOL)animated { [super viewDidDisappear:animated]; NSLog(@"View did dissapear"); } 

Cuando se depura en punto de interrupción (línea con NSLog) y luego se pulsa continuar, terminará en ese EXC_BAD_ACCESS. Si no hay punto de interrupción, todo funciona bien.

Estoy trabajando con XCode 4.2 Build 4D199 (OS X Lion 10.7.2). Utilizando el depurador LLDB.

ACTUALIZACIÓN: elimine todas las excepciones y siempre termina en un subprocess 8: EXC_BAD_ACCESS – 0x1f43: movl (% ebx),% eax – línea 0: inicio …

ACTUALIZACIÓN 2: jugamos con XCode y realmente no sé por qué, pero sé que funciona. No se cambió el código … hmmm … extraño …

Si anula este método, debe llamar a super en algún momento de su implementación.

Es del doc, no sé si es el problema lo que causa tus MALOS ACCESOS, pero al less es algo que tienes que solucionar.

No estás ayudando mucho con ese código que proporcionaste.

establece un malloc_error_break y habilita a los zombies y ve si eso lleva a algo

Siempre debe llamar a super en algún punto de todos los viewWill... o viewDid... que anule. Por ejemplo,

 - (void) viewDidDisappear:(BOOL)animated { NSLog(@"View did disapear"); [super viewDidDisappear:animated]; } 

Estaba recibiendo el mismo error en viewDidDisappear: animado: resultó que tenía una llamada tipográfica [ self viewDidDisappear: animated]; en lugar de [ super viewDidDisappear: animated];

Solución simple pero no muy notable al principio. Me sorprendió que no me dio una advertencia.

Veo un problema levemente diferente aquí. En mi caso (SnowLeopard 10.6.8, XCode 4.2, LLVM 3.0) se detiene en el punto de freno, pero XCode no muestra ninguna información de debugging. Puedo ver mi stackrace en GDB bien, pero los valores locales están en mal estado. Curiosamente, traté de usar performSelectorOnMainThread: puede restaurar las funciones de debugging de XCode, pero algo corrompe los valores de marco activos.

 - (void)viewDidDisappear:(BOOL)animated { [super viewDidDisappear:animated]; [self performSelectorOnMainThread:@selector(_destroyMarketBrowser) withObject:nil waitUntilDone:YES]; 

}

Btw: Todo funciona bien en un simulador, el problema solo ocurre en dispositivos reales (5.0.1 o 5.1 Beta2)