Massimo Oliviero

I deliri digitali di un programmatore informatico e aspirante fotografo…
luglio 17th, 2011 by Massimo

Stanare l’errore EXC_BAD_ACCESS con NSZombieEnabled

EXC_BAD_ACCESS è uno dei peggior incubi per un programmatore Objective-c. L’errore viene scatenato, nella maggior parte dei casi, quando si tenta di accedere ad una variabile precedentemente rilasciata (over-release).

Quando si utilizza NSZombieEnable il Fondation runtime trasforma gli oggetti deallocati in _NSZombie. Questo risulta comodo in fase di debug quando si vuole capire se il nostro codice  cerca di accedere ad una variable zombie. Ed ecco stanata una delle possibili cause di EXC_BAD_ACCESS.

Per abilitare questa utilissima funzione in XCode 4 è sufficiente andare nel menù Product >Edit Scheme…

Nella tabella Environment Variables aggiungere una nuova riga con name NSZombieEnable e value YES.

Attenzione però questa funzionalità presenta uno sgradevole effetto collaterale: un uso eccessivo della memoria in quanto nessuno degli oggetti marcati com zombie verranno veramente deallocati. E’ bene disabilitare l’opzione quando non è più necessaria.

Lascia un Commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *

*

È possibile utilizzare questi tag ed attributi XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">