Ich habe eine App, die ohne Fehlerverfolgung abstürzt. Ich kann einen Teil dessen sehen, was beim Debuggen vor sich geht, kann aber nicht herausfinden, welches Objekt "Zombie-ing" ist.
Weiß jemand, wie man NSZombie in Xcode 4 aktiviert?
Umgebungsvariablen sind jetzt Teil des "Schemas".
So bearbeiten Sie das Schema und aktivieren Zombies:
Wählen Sie im Menü "Produkt" die Option "Schema bearbeiten".
Gehen Sie im linken Bereich zur Phase "Run Foo.app" und rechts zur Registerkarte "Arguments".
Fügen Sie NSZombieEnabled
den Abschnitt "Umgebungsvariablen" hinzu und setzen Sie den Wert YES
wie in Xcode 3 auf.
In Xcode 4.1 und höher gibt es auch ein Kontrollkästchen auf der Registerkarte "Diagnose" der Stufe "Ausführen", um "Zombie-Objekte aktivieren" zu aktivieren.
Mit Xcode 6.4:
Ich habe das gleiche Problem bei der Fehlerbehebung bei EXC_BAD_ACCESS festgestellt und konnte die Einstellung mit Xcode 4.2 (der neuesten Version, die mit iOS5 SDK geliefert wird) nur schwer finden. Apple bewegt Dinge weiter und die Einstellungen sind nicht mehr dort, wo sie früher waren.
Zum Glück habe ich es gefunden und es funktioniert für das Gerät, nicht nur für Simulator. Sie müssen das Menü Produkt im Xcode öffnen, Schema bearbeiten auswählen und dann die Registerkarte Diagnose auswählen. Dort haben Sie "Zombie-Objekte aktivieren". Sobald Sie ausgewählt und im Debugger ausgeführt haben, werden Sie auf das doppelt freigegebene Objekt verweisen! Genießen!
Zusamenfassend
quelle
Produkt> Profil startet Instrumente und dann sollte es eine "Trace-Vorlage" mit dem Namen "Zombies" geben. Diese Ablaufverfolgungsvorlage ist jedoch nur verfügbar, wenn das aktuelle Build-Ziel der Simulator ist. Sie ist nicht verfügbar, wenn Sie das Ziel auf Ihrem iOS-Gerät festgelegt haben.
Ebenfalls zu beachten ist, dass sich in der Instrumentenbibliothek kein aktuelles Zombies-Instrument befindet. Die Zombies-Trace-Vorlage besteht tatsächlich aus dem Allocations-Instrument mit dem Startkonfigurationssatz "NSZombie-Erkennung aktivieren".
quelle
Es ist eine einfache Sache, eine Umgebungsvariable in Ihrer ausführbaren Datei
(NSZombieEnabled = YES)
festzulegen und dann Ihre App wie gewohnt auszuführen / zu debuggen. Wenn Sie einem Zombie eine Nachricht senden, stürzt Ihre App in Debugger und abNSLog
eine Nachricht für Sie.Weitere Informationen finden Sie auf dieser CocoaDev-Seite: http://www.cocoadev.com/index.pl?NSZombieEnabled
Außerdem wird dieser Prozess mit der Veröffentlichung von 10.6 und den nächsten Versionen von Xcode und Instruments viel einfacher. Ich sage nur '. =)
quelle
Produkt> Profil öffnet Instrumente. Wähle Zombies aus dem Panel und werde verrückt.
quelle
Gehen Sie zu Produkt - Schema - Bearbeitungsschema - Argumente - Umgebungsvariablen set NSZombieEnabled = YES
quelle
In xcode 4.2
Gehe zu, Produkt -> Schema bearbeiten -> Klicken Sie auf Ausführen Ihres Anwendungsnamens. App -> Diagonostik -> Zombie-Objekt aktivieren.
quelle
Hier ist ein Video und eine Erklärung, wie Sie mit Instruments und NSZombie Speicherabstürze unter iOS finden und beheben können: http://www.markj.net/iphone-memory-debug-nszombie/
quelle
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
. Auf diese Weise können Sie bestimmte Objekte und deren Aufbewahrungszahlen auf einer Zeitachse anzeigen.quelle
In Xcode 4.5.2 gehen Sie zu Produkt -> Schema bearbeiten -> und aktivieren Sie auf der Registerkarte Diagnose das Kontrollkästchen zwischen Ziel C und Zombie-Objekte aktivieren und klicken Sie auf OK
quelle
Um die Zombie-Protokollierung zu aktivieren, doppelklicken Sie auf die ausführbare Datei in der Gruppe der ausführbaren Dateien Ihres Xcode-Projekts. Klicken Sie an dieser Stelle auf die Registerkarte Argumente und erstellen Sie im
Variables to be set in the environment:
Abschnitt eine Variable mit dem NamenNSZombieEnabled
und setzen Sie ihren Wert aufYES
.quelle
In XCode 4.0: Um NSZombie in Instrumenten zu erkennen, wählen Sie den Simulator als Ziel aus (NSZomboe kann auf dem Gerät nicht erkannt werden). Führen Sie Instruments (CMD + I) aus und wählen Sie die Trace-Vorlage "Zombies". Genießen.
quelle
Fügen Sie in den
NSZombieEnabled
Einstellungen Ihrer ausführbaren Datei die Umgebungsvariable hinzu und setzen Sie den Wert aufYES
.quelle
in ur XCODE (4.3) neben der Wiedergabetaste :) (run)
Wählen Sie: Schema bearbeiten
Das Schemaverwaltungsfenster wird geöffnet
Klicken Sie auf die Registerkarte Argumente
Sie sollten Folgendes sehen: 1- Argumente, die beim Start übergeben wurden 2- Umgebungsvariablen
innerhalb des Ortes (2 Umgebungsvariablen) Name: NSZombieEnabled
Wert: YES
Und es ist geschafft ...
quelle
NSZombieEnabled wird zum Debuggen von BAD_ACCESS verwendet.
Aktivieren Sie die Umgebungsvariable NSZombiesEnabled im Xcode-Schema-Blatt.
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 zu sagen versuche.
quelle