Eu tenho um aplicativo que está travando sem rastreamento de erro. Eu posso ver parte do que está acontecendo se eu depurar, mas não consigo descobrir qual objeto é "zumbi".
Alguém sabe como habilitar o NSZombie no Xcode 4?
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
fonte
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".
fonte
É 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 eNSLog
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'. =)
fonte
Produto> O perfil exibirá Instrumentos. Selecione zumbis no painel e enlouqueça.
fonte
Vá para Produto - Esquema - editar esquema - Argumentos - Conjunto de variáveis de ambiente NSZombieEnabled = YES
fonte
No xcode 4.2
Vá para Produto -> esquema de edição -> clique em Executar yourappname.app -> Diagonostics -> Ativar objeto Zombie.
fonte
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/
fonte
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.fonte
No Xcode 4.5.2, vá para Produto -> Editar esquema -> e Na guia Diagnósticos, marque a caixa de seleção entre o Objetivo C e Ativar objetos zumbis e clique em OK
fonte
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 chamadaNSZombieEnabled
e defina seu valor comoYES
.fonte
No XCode 4.0: Para detectar o NSZombie nos Instrumentos, selecione o Simulador como seu alvo (não é possível detectar o NSZomboe no dispositivo). Execute instrumentos (CMD + I) e selecione o modelo de rastreamento "Zumbis". Aproveitar.
fonte
Nas preferências do seu add executável a variável de ambiente
NSZombieEnabled
e definir o valor paraYES
.fonte
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 ....
fonte
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.
fonte