2010-03-03 13 views
7

Son bir ay önce bir uygulama yayınladım, baştan başa, eşim ve beta test ediciler tarafından iyice test edildi. Son zamanlarda bir kullanıcı bile uygulama hakkında bana bile açamadı (ekran başlatıldıktan sonra çöker), doğru işletim sistemi var ve yeniden yüklemeyi denediler.Objective-C iPhone Uygulaması EXC_BREAKPOINT (SIGTRAP)

Exception Type: EXC_BREAKPOINT (SIGTRAP) 
Exception Codes: 0x00000001, 0xe7ffdefe 
Crashed Thread: 0 

Thread 0 Crashed: 
0 dyld       0x2fe01060 0x2fe00000 + 4192 
1 dyld       0x2fe088d4 0x2fe00000 + 35028 
2 dyld       0x2fe0196c 0x2fe00000 + 6508 
3 dyld       0x2fe01048 0x2fe00000 + 4168 

Thread 0 crashed with ARM Thread State: 
    r0: 0x2fe23ca0 r1: 0x00000000  r2: 0x2fe23ca0  r3: 0x00000000 
    r4: 0x2ffff4e0 r5: 0x2ffff4bc  r6: 0x2fe005c0  r7: 0x2ffffb00 
    r8: 0x00000004 r9: 0x2fe57cf0  r10: 0x2fe236c8  r11: 0x00000009 
    ip: 0x0000018d sp: 0x2ffff5b8  lr: 0x2fe088dc  pc: 0x2fe01060 
    cpsr: 0x00000010 

Binary Images: 
0x2fe00000 - 0x2fe22fff dyld ??? (???) <f6a50d5f57a676b54276d0ecef46d5f0> /usr/lib/dyld 

benim app içinde soruna, EXC_BREAKPOINT (SIGTRAP) neden sorunların ne tür bulmak için görünmüyor olabilir ...

Öldüğü günlüğü için istedi ve bana göndermiş? Başlatma ekranından hemen sonra kilitlendiğinden, hatanın AppDelegate'imde olduğunu farz ediyorum.

+0

var tartışılan hex adresleri). Kök nedenini buldun mu? – pgb

+0

Hayır Yapmadım, tamamen kaldırmasını ve tekrar indirmelerini söyledim. Onlardan haber almadım, ya pes ettiler ya da çalıştılar. Şimdiye kadar aldığım tek şikayet buydu. – avizzini

cevap

-1

Apple's tech note on reading crash files'dan bu adımları deneyin. Uygulamanızdan onaltılık kodu sembollere (sınıf adları, yöntem adları, değişken isimleri vb.) Nasıl çevireceğinizi açıklar.

#define SIGTRAP 5 /* trace trap (not reset when caught) */ 
1

Bu oldukça ilginç Yığın izleme:

signals olarak tanımlanır SIGTRAP gibi hatalar listesini içerir. Diesel'de (dinamik kütüphane yükleyici) çöküyor. Bu, dinamik bir kitaplık veya Framework yüklemesiyle ilgili sorun yaşadığını gösterir. Bu, sistem kodunun yüklenmesi anlamına gelir (çünkü standart bir iphone'da üçüncü tarafa ait bir dinamik kitaplığa sahip olamayacağınız için). İkili Resimler bölümünde, kodunuzun henüz yüklenmediğine (ya da dökümün geri kalan kısmının kesilmediğine) dikkat edin? Dinamik kütüphanelerin manuel yüklenmesini yapıyor musunuz (dlopen() veya benzeri)? Olsa bile, programınız gerçekten yüklenmişse main() yığınında olmasını beklersiniz.

Yeniden yüklemeyi denediğinizde, uygulamanızı kastettiğinizi mi sanıyoruz? Bu, uygulamanızı sildikleri ve daha sonra yeniden yükledikleri anlamına mı geliyor? Akla gelen en olası neden, paketin bozulmasıdır. Ancak silme ve yeniden yüklemenin bunu düzelteceğini düşünürdünüz. Daha agresif, silme, yeniden başlatma ve sonra yeniden yükleyin.

Bir sonraki sorum bu bir iPhone kırıklığı olup olmadığını olurdu. Henüz yapmadıysa, kullanıcının iPhone'u yeniden başlatmasını rica ediyorum. İşletim Sisteminin geri yüklenmesini istemek için cazip olsa bile, müşterinin yapmasını istemek her zaman garip bir şey.

+0

Sadece uygulamayı kaldırdıktan sonra yeniden yüklediklerini, yeniden başlattıklarından emin olmadıklarını söyledim ama onlara bir denemeyi söyleyeceğim. Hiçbir kitaplık yapmıyorum. Daha kötüsü daha kötüye giderse, bir OS yeniden yüklemeye istekli olup olmadıklarını göreceğim. Sanırım hapse atıldı ... Onların işletim sistemi sürümünü ve kilitlenme kayıtlarını bulmaları için onlara yardım etmeliydim ve iPod touch'ının ne kadar büyüklükte olduklarından bile emin değildiler. Yani sanırım onlar hapse giriyorlar ama yanılıyor olabilirim. – avizzini

0

Kilitlenme günlükleri ile genel bir başparmak kuralı vardır: Backtrace işe yaramazsa, konsol günlüğü çıkışına bakın.

Bu durumda, muhtemelen gerçekleşen şey eski bir işletim sistemi sürümünde olmayan şeyleri kullanmanızdır. Dyld (dinamik yükleyici), yükleme süresinde sembolleri çözmeyi denediğinde, bunlardan bazılarını bulmakta başarısız olur ve sembol ya da kütüphane zayıf bağlantılı değildir. Konsol günlüğü hangi sembolün/kütüphanenin yüklenemediğini söylemelidir.

Genel durumda, yalnızca çerçeveyi "Gerekli" olan "Zayıf" olarak değiştirebilirsiniz.

4

Bu hatayı da aldım ve düzeltdim. Bu kişi büyük olasılıkla OS3'ü çalıştırıyor ve OS4'ten bir kod bloğu kullanıyorsunuz, kütüphaneye zayıf bir bağlantı kurmanız ve böylece düzgün bir şekilde yükleyebilmeniz için. LLVM -weak_library /usr/lib/libSystem.B.dylib için inşa ayarlarında

da ben aşağı (tam olarak bunun gibi görünen bir kullanıcıdan bir çökme raporu burada iOS 4 app crashes at startup on iOS 3.1.3: Symbol not found: __NSConcreteStackBlock

İlgili konular