Réponses:
Les variables d'environnement font désormais partie du "schéma".
Pour modifier le schéma et activer des zombies:
Dans le menu "Produit", sélectionnez "Modifier le schéma".
Accédez à l'étape "Exécuter Foo.app" dans le panneau de gauche et à l'onglet "Arguments" à droite.
Ajoutez NSZombieEnabled
à la section "Variables d'environnement" et définissez la valeur sur YES
, comme vous pouvez le faire dans Xcode 3.
Dans Xcode 4.1 et supérieur , il y a aussi une case à cocher sur l'onglet "Diagnostics" de l'étape "Exécuter" pour "Activer les objets zombies".
Avec Xcode 6.4:
J'ai rencontré le même problème avec le dépannage de EXC_BAD_ACCESS et j'ai eu du mal à trouver le paramètre avec Xcode 4.2 (le dernier qui vient avec le SDK iOS5). Apple continue de déplacer les choses et les paramètres ne sont plus là où ils étaient.
Heureusement, je l'ai trouvé et cela fonctionne pour l'appareil, pas seulement pour Simulator. Vous devez ouvrir le menu Produit dans le Xcode, sélectionnez Modifier le schéma, puis choisissez l'onglet Diagnostics. Là, vous avez "Activer les objets Zombie". Une fois sélectionné et exécuté dans le débogueur, vous serez dirigé vers l'objet à double libération! Prendre plaisir!
En bref
Product->Edit Scheme->Diagnostics-> Click Enable Zombie Objects
Produit> Profile lancera Instruments et ensuite vous devriez avoir un "Trace Template" nommé "Zombies". Cependant, ce modèle de trace n'est disponible que si la destination de génération actuelle est le simulateur - il ne sera pas disponible si vous avez défini la destination sur votre appareil iOS.
Une autre chose à noter est qu'il n'y a pas d'instrument Zombies dans la bibliothèque d'instruments. Le modèle de trace des zombies se compose en fait de l'instrument d'allocations avec le jeu de configuration de lancement «Activer la détection NSZombie».
Il (NSZombieEnabled = YES)
suffit de définir une variable d'environnement sur votre exécutable , puis d'exécuter / déboguer votre application normalement.Si vous envoyez un message à un zombie, votre application se bloquera / s'arrêtera sur le débogueur et NSLog
un message pour vous.
Pour plus d'informations, consultez cette page CocoaDev: http://www.cocoadev.com/index.pl?NSZombieEnabled
De plus, ce processus deviendra beaucoup plus facile avec la sortie de 10.6 et les prochaines versions de Xcode et Instruments. Je dis juste '. =)
Produit> Le profil fera apparaître Instruments. Sélectionnez des zombies dans le panneau et devenez fou.
Voici une vidéo et une explication sur la façon d'utiliser Instruments et NSZombie pour trouver et corriger les plantages de mémoire sur iOS: http://www.markj.net/iphone-memory-debug-nszombie/
A partir de Xcode 3.2.5 et Snow Leopard (Mac OS X 10.6), vous pouvez exécuter votre code à travers l'instrument Zombies: Run > Run with Performance Tool > Zombies
. Cela vous permet de voir des objets particuliers et leur nombre de conserver sur une chronologie.
Pour activer la journalisation Zombie, double-cliquez sur l'exécutable dans le groupe d'exécutables de votre projet Xcode. À ce stade, cliquez sur l'onglet Arguments et dans la Variables to be set in the environment:
section, créez une variable appelée NSZombieEnabled
et définissez sa valeur sur YES
.
Dans les préférences de votre exécutable, ajoutez la variable d'environnement NSZombieEnabled
et définissez la valeur sur YES
.
dans ur XCODE (4.3) à côté du bouton de lecture :) (exécuter)
sélectionner: modifier le schéma
la fenêtre de gestion du schéma s'ouvrira
cliquez sur l'onglet Arguments
vous devriez voir: 1- Arguments transmis au lancement 2- Variables d'environnement
à l'intérieur de l'emplacement (2 variables d'environnement) Nom: NSZombieEnabled
Valeur: OUI
Et c'est fait ....
NSZombieEnabled est utilisé pour le débogage de BAD_ACCESS,
activer la variable d'environnement NSZombiesEnabled à partir de la feuille de schémas de Xcode.
Click on Product⇒Edit Scheme to open the sheet and set the Enable Zombie Objects check box
cette vidéo vous aidera à voir ce que j'essaie de dire.