Odpowiedzi:
Zmienne środowiskowe są teraz częścią „schematu”.
Aby edytować schemat i włączyć zombie:
W menu „Produkt” wybierz „Edytuj schemat”.
Przejdź do etapu „Uruchom Foo.app” w lewym panelu i zakładkę „Argumenty” po prawej stronie.
Dodaj NSZombieEnabled
do sekcji „Zmienne środowiskowe” i ustaw wartość YES
, tak jak w Xcode 3.
W Xcode 4.1 i nowszych znajduje się również pole wyboru na zakładce „Diagnostyka” na etapie „Uruchom”, aby „Włącz obiekty zombie”.
Z Xcode 6.4:
Napotkałem ten sam problem podczas rozwiązywania problemów z EXC_BAD_ACCESS i miałem trudności ze znalezieniem ustawienia w Xcode 4.2 (najnowszym, który jest dostarczany z iOS5 SDK). Apple ciągle się porusza, a ustawienia nie są już takie, jak kiedyś.
Na szczęście go znalazłem i działa na urządzeniu, nie tylko na Symulator. Musisz otworzyć menu Produkt w Xcode, wybrać Edytuj schemat, a następnie zakładkę Diagnostyka. Tam masz „Enable Zombie Objects”. Po wybraniu i uruchomieniu w debuggerze wskaże ci podwójnie zwolniony obiekt! Cieszyć się!
W skrócie
Product->Edit Scheme->Diagnostics-> Click Enable Zombie Objects
Produkt> Profil uruchomi Instrumenty, a następnie powinien istnieć „Szablon śledzenia” o nazwie „Zombie”. Jednak ten szablon śledzenia jest dostępny tylko wtedy, gdy bieżącym miejscem docelowym kompilacji jest symulator - nie będzie dostępny, jeśli miejsce docelowe jest ustawione na urządzenie z systemem iOS.
Należy również zauważyć, że w bibliotece instrumentów nie ma rzeczywistego instrumentu Zombie. Szablon śledzenia zombie faktycznie składa się z instrumentu Alokacje z zestawem konfiguracji uruchamiania „Włącz wykrywanie NSZombie”.
Wystarczy ustawić zmienną środowiskową w pliku wykonywalnym (NSZombieEnabled = YES)
, a następnie uruchomić / debugować aplikację w normalny sposób. Jeśli wysyłasz wiadomość do zombie, aplikacja ulegnie awarii / przerwie w debugowaniu i NSLog
pojawi się komunikat.
Aby uzyskać więcej informacji, odwiedź stronę CocoaDev: http://www.cocoadev.com/index.pl?NSZombieEnabled
Ponadto proces ten stanie się znacznie łatwiejszy wraz z wydaniem 10.6 i następnych wersji Xcode i instrumentów. Tylko mówię'. =)
Produkt> Profil wyskoczy Instrumenty. Wybierz zombie z panelu i zwariuj.
Oto wideo i wyjaśnienie, jak korzystać z Instrumentów i NSZombie, aby znaleźć i naprawić awarie pamięci w iOS: http://www.markj.net/iphone-memory-debug-nszombie/
Począwszy od Xcode 3.2.5 i Snow Leopard (Mac OS X 10.6), można uruchomić swój kod za pomocą instrumentu Zombies: Run > Run with Performance Tool > Zombies
. To pozwala zobaczyć poszczególne obiekty i ich zachowanie liczy się na osi czasu.
Aby włączyć rejestrowanie Zombie, kliknij dwukrotnie plik wykonywalny w grupie plików wykonywalnych swojego projektu Xcode. W tym momencie kliknij kartę Argumenty iw Variables to be set in the environment:
sekcji utwórz zmienną wywoływaną NSZombieEnabled
i ustaw jej wartość na YES
.
W preferencjach pliku wykonywalnego dodaj zmienną środowiskową NSZombieEnabled
i ustaw wartość na YES
.
w ur XCODE (4.3) następnie przycisk odtwarzania :) (uruchom)
wybierz: edytuj schemat
otworzy się okno zarządzania schematem
kliknij kartę Argumenty
powinieneś zobaczyć: 1- Argumenty przekazane przy uruchomieniu 2 zmienne środowiskowe
wewnątrz (2 zmiennych środowiskowych) nazwa Nazwa: NSZombieEnabled
Wartość: TAK
I gotowe ...
NSZombieEnabled służy do debugowania BAD_ACCESS,
włącz zmienną środowiskową NSZombiesEnabled z arkusza schematów Xcode.
Click on Product⇒Edit Scheme to open the sheet and set the Enable Zombie Objects check box
ten film pomoże ci zobaczyć, co próbuję powiedzieć.