2013-03-06 20 views
6

XCode ile hata ayıklamada sorun yaşıyorsanız. Tüm yığın izleri yalnızca son iki çağrıyı gösterir. lldb konsolunu da kullanamıyorum. Örneğin basit bir unrecognized selector hata yalnızca bu eser Basit XCode yeniden başlatma sorunu çözdüLLDB yığın izleme yalnızca son 2 aramayı XCode içinde gösterir

* thread #1: tid = 0x2503, 0x32d2e960 libobjc.A.dylib`objc_exception_throw, stop reason = breakpoint 1.1 
    frame #0: 0x32d2e960 libobjc.A.dylib`objc_exception_throw 
    frame #1: 0x37c4ae06 CoreFoundation`-[NSObject(NSObject) doesNotRecognizeSelector:] + 170 
+0

Aynı problem var ... Mac OS X 10.7 kullanıyorum ve zaten mdimport yaptım. tüm semboller klasörlerinde. Bunu çözdün mü? –

cevap

6

Hata ayıklayıcısından, bazen hata ayıklayıcısının çalışmadığı durumlarda çalışan [NSThread callStackSymbols]'u yazdırmayı deneyin.

Bana gerçekten sürpriz olmadı, benim deneyimim GDB'nin çok daha güvenilir olduğu.

+0

gdb (ve 'callStackSymbols') düz bir yığın yürüyüş yapın. lldb kayıt kaydedilir ve yığın manipüle belirlemek için yöntemin talimat denetlemektedir. Kolundaki lldb stackwalk geçen yıl geliştirildi ancak Obj C el optimize edilmiş sevk rutinleri doğru staticly analiz etmek çok zordur. Basit takip çerçeve zincirli algoritması GDB tarafından kullanılan ve 'callStackSymbols' başka durumlarda başarısız olur, bu ne doğru tüm zaman çalışır. Yığın açma işlemi oldukça zor olabilir. –

+0

@JasonMolenda Ben GDB bir naif yığın yürüyüş yapmaz eminim - genellikle + callStackSymbols' çalışır 'Geri izleme vermek başarısız olur. –

+0

Güzel numara. Teşekkürler! Keşke daha az rahatsız edici bir düzeltme olsa da. :( – Kalle

5

log gösterir. Ama bu böcek bir süre sonra devam ediyor. Bununla ilgili bir hata bildireceğim. Objective-C çalışma zamanı fonksiyonları aracılığıyla gevşemek

+0

Basit ama etkili. Teşekkür ederim! Bende aynı problem vardı. Hata ayıklayıcı sadece son iki yığın eser öğelerini gösterir. Çağırmaların hepsi sade ve basit statik yöntem çağrılarıydı. Xcode'un yeniden başlatılması çözüldü. –

0

kolunda yanıltıcı olabilir, montaj el ayarlı ve lldb sorun bunları geçmişte gevşemeye nasıl bulmaktan olabilmesidir. Bu durumda, bir çerçeve daha var gibi görünüyor ve daha sonra daha fazla alamadım.

İlgili konular