2012-03-28 5 views
1

Ich versuche herauszufinden, wo ein NSString freigegeben wird. Ich habe GuardMalloc, NSZombie und Log Malloc Stack für meine Anwendung aktiviert (wie beschrieben here). Als ich info malloc-history 0x29d39fe0 in der Konsole laufen lasse, erhalte ich folgende Fehlermeldung:XCode 4.2: Aufgespürte NSString-Freigabe

warning: MallocStackLoggingNoCompact not set in target's environment so the malloc history will not be available. 

Diese mich führt der Fehler, zu glauben, mit einem meiner Bibliothek Projekte ist. Wie kann ich das oben genannte für Bibliotheksprojekte aktivieren?

+1

Können Sie im Profiler laufen und nach Zombies suchen (Strg-I, dann wählen Sie Zombies)? Könnte einfacher sein, als es von Hand zu tun. Ich nehme an, das Ergebnis ist das gleiche. –

+0

@AdamShiemke Das war einfacher. –

Antwort

0

Dank Adam für die Führung (in den Kommentaren oben). Ich war in der Lage, Instrumente zu verwenden, um herauszufinden, wo die Extra-Freisetzung stattfand (was bei einem Autoreleased-Objekt passierte).

Ich folgte den Anweisungen here. Nachdem ich sichergestellt hatte, dass die erweiterte Ansicht geöffnet war, konnte ich die genaue Codezeile ermitteln, die den fälligen Freigabeaufruf hatte.