Wie kann NSZombie in Xcode aktiviert werden?

288

Ich habe eine App, die ohne Fehlerverfolgung abstürzt. Ich kann einen Teil dessen sehen, was passiert, wenn ich debugge, aber ich kann nicht herausfinden, welches Objekt "zombie-ing" ist.

Weiß jemand, wie man NSZombie in Xcode 4 aktiviert?

    
jason 22.03.2011, 02:44
quelle

15 Antworten

425

Umgebungsvariablen sind jetzt Teil des "Schemas".

Um das Schema zu bearbeiten und Zombies zu aktivieren:

  • Wählen Sie im Menü "Produkt" die Option "Schema bearbeiten".

  • Gehen Sie im linken Bereich zur Stufe "Run Foo.app" und rechts zum Register "Argumente".

  • Fügen Sie NSZombieEnabled dem Abschnitt "Umgebungsvariablen" hinzu und legen Sie den Wert wie in Xcode 3 auf YES fest.

In Xcode 4.1 und höher gibt es auf der Registerkarte "Diagnose" der Phase "Ausführen" auch ein Kontrollkästchen für "Zombie-Objekte aktivieren".

Mit Xcode 6.4:

    
一二三 22.03.2011, 04:57
quelle
141

Ich habe das gleiche Problem mit der Fehlerbehebung von EXC_BAD_ACCESS festgestellt und hatte Schwierigkeiten, die Einstellung mit Xcode 4.2 (dem neuesten, das mit iOS5 SDK geliefert wird) zu finden. Apple bewegt Dinge weiter und die Einstellungen sind nicht mehr dort, wo sie früher waren.

Glücklicherweise habe ich es gefunden und es funktioniert für das Gerät, nicht nur Simulator. Sie müssen das Produktmenü im Xcode öffnen, Schema bearbeiten wählen und dann die Registerkarte Diagnose wählen. Dort haben Sie "Enable Zombie Objects". Sobald Sie ausgewählt und im Debugger ausgeführt werden, werden Sie auf das doppelt freigegebene Objekt verweisen! Viel Spaß!

Kurz gesagt

%Vor%     
Moshe Kravchik 16.11.2011 12:28
quelle
41

Produkt & gt; Profil startet Instrumente und dann sollte es eine "Trace-Vorlage" namens "Zombies" sein. Diese Ablaufverfolgungsvorlage ist jedoch nur verfügbar, wenn das aktuelle Buildziel der Simulator ist. Dieser ist nicht verfügbar, wenn Sie das Ziel für Ihr iOS-Gerät festgelegt haben.

Auch ist zu beachten, dass es in der Instrumentenbibliothek kein echtes Zombies-Instrument gibt. Die Zombie-Trace-Vorlage besteht aus dem Allokations-Instrument mit dem Startkonfigurationsset "Enable NSZombie detection".

    
Shane Fitzgibbon 05.05.2011 01:19
quelle
24

Es ist eine einfache Sache, eine Umgebungsvariable in Ihrer ausführbaren Datei (NSZombieEnabled = YES) zu setzen und dann Ihre App wie gewohnt auszuführen / zu debuggen. Wenn Sie einen Zombie melden, stürzt Ihre App mit dem Debugger und NSLog ab du.

Weitere Informationen finden Sie auf dieser CocoaDev-Seite: Ссылка

Auch dieser Prozess wird mit der Veröffentlichung von 10.6 und den nächsten Versionen von Xcode und Instruments viel einfacher. Sag nur '. =)

    
Dave DeLong 31.07.2009 15:16
quelle
22

Produkt & gt; Profil wird Instrumente aufklappen. Wählen Sie Zombies aus dem Panel und gehen Sie Nüsse.

    
garageàtrois 04.04.2011 13:56
quelle
15

Gehen Sie zu Produkt - Schema - Bearbeitungsschema - Argumente - Umgebungsvariablen set NSZombieEnabled = YES

    
PJR 11.12.2013 09:48
quelle
12

In xcode 4.2

Springen, Produkt - & gt; Bearbeitungsschema - & gt; Klicken Sie auf Run yourappname.app - & gt; Diagostik - & gt; Aktiviere Zombie-Objekt.

    
Dax 08.11.2011 12:56
quelle
10

Hier ist ein Video und eine Erläuterung, wie man Instrumente und NSZombie benutzt, um Speicherabstürze auf iOS zu finden und zu beheben: Ссылка

    
Mark Johnson 31.01.2011 03:19
quelle
6

Ab Xcode 3.2.5 und Snow Leopard (Mac OS X 10.6) können Sie Ihren Code über das Zombies-Instrument ausführen: Run > Run with Performance Tool > Zombies . Dadurch können Sie bestimmte Objekte und deren Anzahl auf einer Zeitleiste sehen.

    
Dov 08.12.2010 23:40
quelle
3

Um die Zombie-Protokollierung zu aktivieren, doppelklicken Sie auf die ausführbare Datei in der ausführbaren Gruppe Ihres Xcode-Projekts. Klicken Sie an dieser Stelle auf die Registerkarte Argumente, und erstellen Sie im Abschnitt Variables to be set in the environment: eine Variable mit dem Namen NSZombieEnabled und legen Sie ihren Wert auf YES fest.

    
DreamOfMirrors 30.04.2011 10:12
quelle
3

In XCode 4.0: Um NSZombie in Instrumenten zu erkennen, wählen Sie den Simulator als Ziel (NSZomboe kann auf dem Gerät nicht erkannt werden). Run Instruments (CMD + I) und wählen Sie "Zombies" Ablaufverfolgung Vorlage. Viel Spaß.

    
Ehud B 06.10.2011 12:22
quelle
3

In Xcode 4.5.2 gehe zu Produkt - & gt; Schema bearbeiten - & gt; und Aktivieren Sie auf der Registerkarte Diagnose das Kontrollkästchen zwischen Objective C und Enable Zombie Objects und klicken Sie auf OK

    
Gani414 07.12.2012 14:37
quelle
2

Fügen Sie in den Einstellungen Ihrer ausführbaren Datei die Umgebungsvariable NSZombieEnabled hinzu und setzen Sie den Wert auf YES .

    
user142019 30.04.2011 10:11
quelle
2

in ur XCODE (4.3) als nächstes die Play-Taste :) (run)

Wählen Sie: Schema bearbeiten

Das Schema-Management-Fenster öffnet sich

Klicken Sie auf die Registerkarte Argumente

sollten Sie sehen: 1- Argumente beim Start übergeben                  2 Umgebungsvariablen

innerhalb des Bereichs (2 Umgebungsvariablen) Name: NSZombieEnabled
Wert: JA

Und es ist fertig ....

    
Rabih harb 17.05.2012 09:41
quelle
1

NSZombieEnabled wird für das Debuggen von BAD_ACCESS verwendet,

Aktivieren Sie die NSZombiesEnabled-Umgebungsvariable aus dem Schemasheet von Xcode.

Click on Product⇒Edit Scheme to open the sheet and set the Enable Zombie Objects check box

Dieses Video wird Ihnen helfen zu sehen, was ich versuche sag.

    
user2554822 22.10.2013 08:21
quelle

Tags und Links