Risposte:
Le variabili d'ambiente fanno ora parte dello "schema".
Per modificare lo schema e attivare gli zombi:
Nel menu "Prodotto", seleziona "Modifica schema".
Vai allo stage "Esegui Foo.app" nel riquadro a sinistra e la scheda "Argomenti" a destra.
Aggiungi NSZombieEnabled
alla sezione "Variabili d'ambiente" e imposta il valore su YES
, come puoi fare con Xcode 3.
In Xcode 4.1 e versioni successive , c'è anche una casella di controllo nella scheda "Diagnostica" della fase "Esegui" per "Abilitare oggetti zombi".
Con Xcode 6.4:
Ho riscontrato lo stesso problema con la risoluzione dei problemi EXC_BAD_ACCESS e ho avuto difficoltà a trovare l'impostazione con Xcode 4.2 (l'ultimo fornito con iOS5 SDK). Apple continua a spostare le cose e le impostazioni non sono più dove erano prima.
Fortunatamente l'ho trovato e funziona per il dispositivo, non solo per il simulatore. Devi aprire il menu Prodotto nell'Xcode, selezionare Modifica schema e quindi scegliere la scheda Diagnostica. Lì hai "Abilita oggetti zombi". Una volta selezionato ed eseguito nel debugger ti indirizzerà al doppio oggetto rilasciato! Godere!
In breve
Product->Edit Scheme->Diagnostics-> Click Enable Zombie Objects
Prodotto> Profilo avvierà Instruments e quindi dovresti trovare un "modello di traccia" chiamato "Zombi". Tuttavia, questo modello di traccia è disponibile solo se la destinazione di build corrente è il simulatore, non sarà disponibile se la destinazione è impostata sul dispositivo iOS.
Un'altra cosa da notare è che non esiste uno strumento Zombi nella libreria degli strumenti. Il modello di traccia degli zombi è in realtà costituito dallo strumento Allocazioni con il set di configurazione di avvio "Abilita rilevamento NSZombie".
È una semplice questione di impostare una variabile di ambiente sul tuo eseguibile (NSZombieEnabled = YES)
e quindi eseguire / eseguire il debug della tua app normalmente. Se mandi un messaggio a uno zombi, la tua app andrà in crash / romperà il debugger e NSLog
un messaggio per te.
Per ulteriori informazioni, consulta questa pagina CocoaDev: http://www.cocoadev.com/index.pl?NSZombieEnabled
Inoltre, questo processo diventerà molto più semplice con il rilascio di 10.6 e le versioni successive di Xcode e Instruments. Sto solo dicendo '. =)
Prodotto> Profilo farà apparire Strumenti. Seleziona gli zombi dal pannello e impazzisci.
Ecco un video e una spiegazione su come usare Instruments e NSZombie per trovare e correggere crash di memoria su iOS: http://www.markj.net/iphone-memory-debug-nszombie/
Come di Xcode 3.2.5 e Snow Leopard (Mac OS X 10.6), è possibile eseguire il codice attraverso lo strumento Zombies: Run > Run with Performance Tool > Zombies
. Ciò consente di vedere oggetti particolari e i relativi conteggi di conservazione su una sequenza temporale.
Per abilitare la registrazione di Zombie, fai doppio clic sul file eseguibile nel gruppo eseguibili del tuo progetto Xcode. A questo punto fai clic sulla scheda Argomenti e nella Variables to be set in the environment:
sezione, crea una variabile chiamata NSZombieEnabled
e imposta il suo valore su YES
.
Nelle preferenze del tuo eseguibile aggiungi la variabile di ambiente NSZombieEnabled
e imposta il valore su YES
.
nel tuo XCODE (4.3) accanto al pulsante di riproduzione :) (esegui)
seleziona: modifica schema
si aprirà la finestra di gestione dello schema
fai clic sulla scheda Argomenti
dovresti vedere: 1- Argomenti passati all'avvio 2- variabili d'ambiente
all'interno del luogo (2- variabili d'ambiente) Nome: NSZombieEnabled
Valore: SÌ
Ed è fatto ....
NSZombieEnabled viene utilizzato per il debug di BAD_ACCESS,
abilitare la variabile d'ambiente NSZombiesEnabled dal foglio degli schemi di Xcode.
Click on Product⇒Edit Scheme to open the sheet and set the Enable Zombie Objects check box
questo video ti aiuterà a vedere cosa sto cercando di dire.