20 EKİM 2011, PERŞEMBE
Böyle büyük mükafat 4.2't symbolicate çağrı yığını değil hata ayıklama
İOS 5 simülatörü/cihazı 4.2 hata ayıklama Güncellemelerinden ile ilgili bir sorun var. İOS 4'te.x, aşağıdaki kodu Tamam çalışır:
NSArray *arr=[NSArray array];
[arr objectAtIndex:100];
Ama 5, sadece bana verir iOS yığın izleme hex numaraları:
*** First throw call stack:
(0x16b4052 0x1845d0a 0x16a0674 0x294c 0x6f89d6 0x6f98a6 0x708743 0x7091f8 0x7fcaa9 0x2257fa9 0x16881c5 0x15ed022 0x15eb90a 0x15eadb4 0x15eaccb 0x6f02a7 0x6faa93 0x2889 0x2805)
Teşekkürler.
CEVAP
25 EKİM 2011, Salı
Denedim, hiçbir şey bu (denedim derleyici, hem de hata, vb.)düzeltmek istiyorum İOS için böyle büyük mükafat yükseltmeden sonra 5 güncelleme, hiçbir yığın izleri çalışır gibiydi.
Ancak, etkili bir çözüm - benim kendi özel durum işleyicisi oluşturma başka nedenlerle de yararlı olan) buldum. İlk olarak, hata işleme ve yanı sıra başka ne yapmak istiyorsun) konsola çıktı bir işlev oluşturun:
void uncaughtExceptionHandler(NSException *exception) {
NSLog(@"CRASH: %@", exception);
NSLog(@"Stack Trace: %@", [exception callStackSymbols]);
// Internal error reporting
}
Ardından, app temsilci için özel durum işleyicisi ekleyin:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
NSSetUncaughtExceptionHandler(&uncaughtExceptionHandler);
// Normal launch stuff
}
İşte bu!
Eğer bu işe yaramaz ise, o zaman vardırsadece iki olası sebep:
- Bir şey
NSSetUncaughtExceptionHandler
arama (tüm uygulama için tek bir işleyici olabilir) üzerine yazma. Örneğin, bazı 3. parti kütüphaneler kendi uncaughtExceptionHandler ayarlayın. Yani,didFinishLaunchingWithOptions
fonksiyon SONUNDA ayarlamayı deneyin (veya seçmeli olarak 3. parti kütüphaneler devre dışı bırakma). Ya da daha iyisiNSSetUncaughtExceptionHandler
sembolik bir kesme noktası hızlı bir şekilde kimin aradığını görmek için ayarlayın. Yapmak isteyebilirsiniz, mevcut bir değiştirmek yerine bir tane daha ekliyor. - Aslında bir özel durumu oluşuyor değilsin (örneğin,
EXC_BAD_ACCESS
değilbir istisna; @kredi Erik B yorumları, aşağıda)
Bunu Paylaş:
Böyle büyük mükafat Bekçi Malloc ve Ci...
Böyle büyük mükafat hata ayıklayıcı�...
Nasıl böyle büyük mükafat olarak LLVM ...
Böyle büyük mükafat 5/6: hata Ayıklama...
Böyle büyük mükafat 4 - "Geçerli ...