Respostas:
Variáveis de ambiente agora fazem parte do "esquema".
Para editar o esquema e ativar zumbis:
No menu "Produto", selecione "Editar esquema".
Vá para o estágio "Run Foo.app" no painel esquerdo e a guia "Arguments" à direita.
Adicione NSZombieEnabled
à seção "Variáveis de ambiente" e defina o valor YES
como, como você poderia no Xcode 3.
No Xcode 4.1 e acima , também há uma caixa de seleção na guia "Diagnóstico" do estágio "Executar" para "Ativar objetos zumbis".
Com o Xcode 6.4:
Encontrei o mesmo problema com a solução de problemas EXC_BAD_ACCESS e tive dificuldade para encontrar a configuração com o Xcode 4.2 (o mais recente que vem com o iOS5 SDK). A Apple continua movendo as coisas e as configurações não estão mais onde costumavam estar.
Felizmente, eu o encontrei e funciona para o dispositivo, não apenas para o Simulator. Você precisa abrir o menu Produto no Xcode, selecionar Editar esquema e escolher a guia Diagnóstico. Lá você tem "Ativar objetos zumbis". Uma vez selecionado e executado no depurador, você apontará para o objeto liberado duas vezes! Aproveitar!
Em resumo
Product->Edit Scheme->Diagnostics-> Click Enable Zombie Objects
Produto> O perfil iniciará os Instrumentos e você deverá ter um "Modelo de Rastreio" chamado "Zumbis". No entanto, esse modelo de rastreamento estará disponível apenas se o destino de compilação atual for o simulador - ele não estará disponível se você tiver o destino definido no seu dispositivo iOS.
Outra coisa a se notar é que não existe um instrumento Zombies real na biblioteca de instrumentos. O modelo de rastreamento de zumbis consiste, na verdade, no instrumento Alocações com o conjunto de configurações de ativação "Ativar detecção do NSZombie".
É uma simples questão de definir uma variável de ambiente no seu executável (NSZombieEnabled = YES)
e depois executar / depurar seu aplicativo normalmente. Se você enviar uma mensagem para um zumbi, seu aplicativo falhará / será interrompido no depurador e NSLog
uma mensagem para você.
Para obter mais informações, consulte esta página do CocoaDev: http://www.cocoadev.com/index.pl?NSZombieEnabled
Além disso, esse processo se tornará muito mais fácil com o lançamento do 10.6 e as próximas versões do Xcode e Instruments. Apenas dizendo'. =)
Produto> O perfil exibirá Instrumentos. Selecione zumbis no painel e enlouqueça.
Aqui está um vídeo e uma explicação sobre como usar o Instruments e o NSZombie para encontrar e corrigir falhas de memória no iOS: http://www.markj.net/iphone-memory-debug-nszombie/
A partir do Xcode 3.2.5 e Snow Leopard (Mac OS X 10.6), você pode executar o código através do instrumento Zombies: Run > Run with Performance Tool > Zombies
. Isso permite que você veja objetos específicos e suas contagens contidas em uma linha do tempo.
Para habilitar o log do Zombie, clique duas vezes no executável no grupo de executáveis do seu projeto do Xcode. Nesse ponto, clique na guia Argumentos e, na Variables to be set in the environment:
seção, faça uma variável chamada NSZombieEnabled
e defina seu valor como YES
.
Nas preferências do seu add executável a variável de ambiente NSZombieEnabled
e definir o valor para YES
.
no seu XCODE (4.3) ao lado do botão play :) (executar)
selecionar: editar esquema
a janela de gerenciamento do esquema será aberta
clique na guia Argumentos
Você deve ver: 1 - Argumentos transmitidos no lançamento 2 - Variáveis de ambiente
dentro do local (2 variáveis de ambiente) Nome: NSZombieEnabled
Valor: YES
E está feito ....
NSZombieEnabled é usado para depuração BAD_ACCESS,
ative a variável de ambiente NSZombiesEnabled da planilha de esquemas do Xcode.
Click on Product⇒Edit Scheme to open the sheet and set the Enable Zombie Objects check box
este vídeo ajudará você a ver o que estou tentando dizer.