2016-03-23 25 views
2

Belirli bir kitaplığın/çerçevenin kaynak kodundaki kesme noktalarında sorun yaşıyorum (Xcode'da yeni - doğru terimin ne olduğundan emin değilim)) oldukça büyük bir iOS projesinde. Bu kütüphane için tüm kodum var. Kesme noktaları her yerde iyi çalışıyor, ancak bu özel kütüphanede, tüm kesme noktaları göz ardı ediliyor.XCode belirli bir iOS kitaplığı/framework projesi için sembolleri bulamıyor

Bu kaynak dosyalardan birinin içinden çağrılan bir işleve bir kesme noktası koyabilirim ve tetikler, ancak daha sonra aramalar, sanki semboller gibi sanki ilgilenilen dosyadaki "__lldb_unnamed_function" değerini gösterir soyulmuş. bazı şeyler ölü kod olarak işaretleniyor olabilir ben

Generate Debug Symbols = YES 
Strip Debug Symbols During Copy = NO 
Strip Linked Product = NO 
Dead Code Stripping = NO 

Birkaç fonksiyonların alternatif uygulamaları test etmek #ifdefs bir sürü kullanarak olmuştur Söz konusu kütüphane için aşağıdaki ayarlar yüzden düşündüm

Kaza ile (bu nedenle son ayar). Temizlemeyi/yeniden yapmayı denedim. Uygulamayı hedef iPhone'dan tamamen kaldırmayı denedim. Ben

/Library/Developer/Xcode/DerivedData 

tüm NSLog çağrılar Düzgün bir şekilde gösterilmesi nedeniyle kod kesinlikle yürütülüyorsa altında ara dosya klasörü silmeye çalıştık.

yüzden ben sadece

Teşekkür

+0

Simgesel kesme noktası ayarlamayı deneyin Sembolik kesme noktası – heximal

+0

Teşekkürler, birçok yöntem için sembolik kesme noktalarını denedim, ancak hiçbiri tetiklenmedi. Bunları nasıl ayarlayacağınıza bakmak zorundaydım: [link] (https://developer.apple.com/library/ios/recipes/xcode_help-breakpoint_navigator/articles/adding_a_symbolic_breakpoint.html) – lowpolyjoe

+0

Aynı sorunu bir kez yaşadım ve Yukarıda bahsettiğiniz gibi Önbellek şeyler tarafından yapıldı. Denediğin yöntemler bana o zaman yardımcı oldu. Ayrıca Build klasörünü temizlemeyi denediniz mi (Xcode Ürün menüsü düştüğünde Cmd tuşuna basınız)? – heximal

cevap

1

oluşturma işlemine bir kısmı bu ikili sıyırma olmalıdır basit bir şey eksik umut ediyorum Xcode ile çok deneyimi yok. Hata ayıklama bilgisi olmayan, sıkıştırılmamış bir ikili oluşturuyorsanız, tam sembol adlarını geriye doğru ve benzer şekilde görürdünüz, onlar için yalnızca hata ayıklama bilgisi olmaz.

Bunu kimin yaptığını anlamanın en iyi yolu, Xcode'ta tam oluşturma günlüğüne bakmak ve bu aşamada kimin yaptığını anlamak için tüm oluşturma aşamaları boyunca aşamayı ve grubun her birini genişletmektir. Aşamaları, RHS'deki her bir satırın üzerine getirerek genişletirsiniz ve bir sayfada bir dizi çizgiye benzeyen bir açıklama dingus'u alırsınız; Gerçek komutları görmek için tıklayın.

Bu çerçeveyi düzeltmenin başka bir yolu da, bu çerçeve için dSYM'nin oluşturulmasıdır (Hata Ayıklama Formatını "DWARF + dSYM" olarak ayarlayarak). Herhangi bir şey çıkarılmadan önce yapılmalıdır. Bu hata ayıklama bilgisini korumalıdır.