Xcode'da NSZombie nasıl etkinleştirilir?


302

Hiçbir hata izleme ile çökmesini bir uygulama var. Hata ayıklarsam neler olup bittiğini görebilirim, ancak hangi nesnenin "zombi-ing" olduğunu anlayamıyorum.

Xcode 4'te NSZombie'yi nasıl etkinleştireceğini bilen var mı?

Yanıtlar:


440

Ortam değişkenleri artık "şemanın" bir parçasıdır.

Şemayı düzenlemek ve zombileri açmak için:

  • "Ürün" menüsünde, "Düzeni Düzenle" yi seçin.

  • Sol paneldeki "Run Foo.app" aşamasına ve sağdaki "Bağımsız Değişkenler" sekmesine gidin.

  • NSZombieEnabled"Ortam Değişkenleri" bölümüne ekleyin ve YESXcode 3'te olduğu gibi değeri olarak ayarlayın .


Xcode 4.1 ve üzeri sürümlerde , "Çalıştır" aşamasının "Tanı" sekmesinde "Zombi Nesnelerini Etkinleştir" seçeneğinin bulunduğu bir onay kutusu da vardır.


Xcode 6.4 ile:

Ekran görüntüsü


5
Cihazdaki ayrılmış nesneye yapılan çağrıyı kesmez, bunun için herhangi bir yol yoktur?
jjxtra

95
4.2'de tekrar değişti, aşağıdaki cevabımı görün. Ürün->
Şemayı Düzenle-

Xcode'da, üst taraftaki Yardım menüsünde (sağdaki sonuncusu) "Düzeni Düzenle" araması, herhangi bir sürümde her seferinde sizi doğru yönde gösterecektir.
unom

Uygulamamız için bu NSZombieEnabled özelliğini etkinleştirirsek, uygulamayı saklamak için serbest bırakalım ..? Çünkü bir yazı bu özelliği etkinleştirdiğimizde depolamak için iyi bir uygulama olmadığını söylediğini gördüm.
SURESH SANKE

2
Sonra gelen çerezler için, Xcode 6.1'de Ürün> Şema Düzenle Şeması> Teşhis sekmesi> Onay Kutusu Zombi Nesnelerini Etkinleştir
Joshua Dance

146

EXC_BAD_ACCESS sorun giderme ile aynı sorunla karşılaştım ve Xcode 4.2 (iOS5 SDK ile birlikte gelen en son) ile ayarı bulmak için zor zaman geçirdim. Apple hareket etmeye devam ediyor ve ayarlar artık eskisi gibi değil.

Neyse ki, buldum ve sadece Simulator için değil, cihaz için çalışıyor. Xcode'da Ürün menüsünü açmanız, Düzeni düzenle'yi ve ardından Teşhis sekmesini seçmeniz gerekir. Orada "Zombi Nesnelerini Etkinleştir" var. Bir kez seçilen ve hata ayıklayıcıda çalıştırmak sizi çift serbest bırakılmış nesneye işaret edecek! Zevk almak!

Kısacası

Product->Edit Scheme->Diagnostics-> Click Enable Zombie Objects

2
Xcode'da, üst taraftaki Yardım menüsünde (sağdaki sonuncusu) "Düzeni Düzenle" araması, herhangi bir sürümde her seferinde sizi doğru yönde gösterecektir.
unom

43

Ürün> Profil, Cihazları başlatır ve ardından "Zombiler" adında bir "İzleme Şablonu" olmalıdır. Bununla birlikte, bu izleme şablonu yalnızca mevcut oluşturma hedefi simülatörse kullanılabilir - hedef, iOS cihazınıza ayarlanmışsa kullanılamaz.

Ayrıca dikkat edilmesi gereken başka bir şey, enstrüman kütüphanesinde gerçek bir Zombies enstrümanı olmamasıdır. Zombiler izleme şablonu aslında "NSZombie algılamayı etkinleştir" başlatma yapılandırma kümesine sahip Tahsisler aracından oluşur.


13
"Ancak bu izleme şablonu yalnızca geçerli oluşturma hedefi simülatörse kullanılabilir". Teşekkür ederim!
ajh158

Teşekkürler, aradığım şey buydu!
Cliff Ribaudo

Xcode'da, üst taraftaki Yardım menüsünde (sağdaki sonuncusu) "Düzeni Düzenle" araması, herhangi bir sürümde her seferinde sizi doğru yönde gösterecektir.
14'te unom

25

Bu, çalıştırılabilir programınıza bir ortam değişkeni ayarlamak (NSZombieEnabled = YES)ve ardından uygulamanızı normal olarak çalıştırmak / hata ayıklamak için basit bir konudur.Bir zombi mesajı gönderiyorsanız, uygulamanız hata ayıklayıcıya / mesajına çökecektir NSLog.

Daha fazla bilgi için şu CocoaDev sayfasına göz atın: http://www.cocoadev.com/index.pl?NSZombieEnabled

Ayrıca, 10.6 sürümü ve sonraki Xcode ve Instruments sürümleriyle bu süreç çok daha kolay hale gelecek. Sadece söylüyorum'. =)


Tamamen kabul etti. Yeni Zombies enstrümanı çok güzel.
Quinn Taylor

22

Ürün> Profil Aletler açılır. Panelden zombileri seçin ve fındıklara gidin.


5
@jluebbert Daha çok deniyorum diyebilirim çünkü kesinlikle görüyorum, Xcode 4.02
garageàtrois

16

Ürüne Git - Şema - şemayı düzenle - Bağımsız Değişkenler - Ortam Değişkenleri kümesi NSZombieEnabled = YES

resim açıklamasını buraya girin

resim açıklamasını buraya girin


12

Xcode 4.2 içinde

Git, Ürün -> düzeni düzenle -> Run yourappname.app -> Diagonostics -> Zombie nesnesini etkinleştir'i tıklayın.



6

Xcode 3.2.5 ve Snow Leopard (Mac OS X 10.6) itibaren, Zombiler enstrüman aracılığıyla kodu çalıştırabilirsiniz: Run > Run with Performance Tool > Zombies. Bu, belirli nesneleri ve bunların zaman çizelgesindeki sayılarını görmenizi sağlar.


1
Zombiler seçeneğini görebiliyorum ama gri renkte. Nasıl etkinleştirildiğini biliyor musunuz?
Rahul Vyas

@RahulVyas, daha önce hiç görmedim, ama çöp toplama açık mı?
Zombies'in

Desteklenen [-fobjc-gc] gösterdiği ayarlarda çöp toplama özelliğini açtım ancak yine de bu seçenek devre dışı. Infact, enstrümanlar kategorisinde yalnızca son 5 seçenek etkinleştirilmiştir. Başka bir fikrin var mı? Yoksa yanlış bir şey mi yapıyorum?
Rahul Vyas

@RahulVyas: Üzgünüm, daha net olmak gerekirse, çöp toplama özelliğini kapatmanın muhtemelen Zombies'i etkinleştireceğini düşündüm , çünkü çöp toplama özelliğine sahip bir zombi olabileceğini sanmıyorum. Bu sorunu çözmezse, Cihaz belgelerini (her enstrümanda iyi yazılar var) okumanızı öneririm ve hala almadıysanız, daha fazla dikkat çekmek için bir soru gönderin (ve sonunda bir cevap) .
Dov

4

Xcode 4.5.2'de Ürün -> Düzeni Düzenle -> ve Tanı sekmesi altında Hedef C ile Zombi Nesnelerini Etkinleştir arasındaki onay kutusunu işaretleyin ve Tamam'a tıklayın


3

Zombie günlüğünü etkinleştirmek için Xcode projenizin yürütülebilir dosyalar grubundaki yürütülebilir dosyayı çift tıklatın. Bu noktada Bağımsız Değişkenler sekmesini tıklatın ve Variables to be set in the environment:bölümde, adlı bir değişken yapın NSZombieEnabledve değerini olarak ayarlayın YES.


3

XCode 4.0'da: Instruments'ta NSZombie'yi tespit etmek için, hedefiniz olarak Simülatörü seçin (cihazda NSZomboe tespit edilemiyor). Enstrümanları (CMD + I) çalıştırın ve "Zombiler" izleme şablonunu seçin. Zevk almak.


2

Yürütülebilir dosyanızın tercihlerine ortam değişkenini ekleyin NSZombieEnabledve değeri olarak ayarlayın YES.


2

XCODE'da (4.3) oynat düğmesinin yanında :) (koş)

select: şemayı düzenle

şema yönetimi penceresi açılacaktır

Bağımsız Değişkenler sekmesini tıklayın

şunları görmelisiniz: 1- Lansmanda aktarılan argümanlar 2- ortam değişkenleri

(2- ortam değişkenleri) yeri içinde İsim: NSZombieEnabled
Değer: YES

Ve bitti ....


1

NSZombieEnabled, BAD_ACCESS hata ayıklaması için kullanılır,

XZZ'nin şemalar sayfasından NSZombiesEnabled ortam değişkenini etkinleştirin.

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

Bu video ne demeye çalıştığımı görmene yardımcı olacak.


@kleopatra Teşekkürler cevaplarımı uygun ayarlarla güncelledi
user2554822
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.