2010-03-03 9 views
7

मैंने हाल ही में एक महीने पहले एक आवेदन जारी किया था, यह पूरी तरह से मेरे, मेरे साथी और बीटा टेस्टर्स द्वारा परीक्षण किया गया था। हाल ही में एक उपयोगकर्ता ने ऐप के बारे में मुझसे संपर्क नहीं किया (यहां तक ​​कि स्क्रीन शुरू करने के बाद दुर्घटनाएं), उनके पास सही ओएस है और उन्होंने पुनः स्थापित करने का प्रयास किया।उद्देश्य-सी आईफोन ऐप 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 

मैं अपने अनुप्रयोग के भीतर एक समस्या, EXC_BREAKPOINT (SIGTRAP) कारण समस्याओं का किस प्रकार खोजने के लिए प्रतीत नहीं कर सकते हैं? मुझे लगता है कि त्रुटि मेरे ऐपडिलेगेट के भीतर है क्योंकि यह स्टार्ट अप स्क्रीन के ठीक बाद दुर्घटनाग्रस्त हो जाती है।

+0

मुझे मिल गया पर चर्चा की है कि (नीचे वास्तव में यह एक तरह लग रहा है के लिए एक उपयोगकर्ता से क्रैश रिपोर्ट हेक्स पते)। क्या आपको कभी मूल कारण मिला? – pgb

+0

नहीं मैंने नहीं किया, मैंने उन्हें पूरी तरह से हटाने और इसे फिर से डाउनलोड करने के लिए कहा। मैंने उनसे वापस नहीं सुना है, इसलिए उन्होंने छोड़ दिया या यह काम किया। अब तक मुझे यही एकमात्र शिकायत मिली है। – avizzini

उत्तर

-1

Apple's tech note on reading crash files से इन चरणों को आज़माएं। यह बताता है कि हेक्स कोड को अपने ऐप से प्रतीकों (कक्षा के नाम, विधि नाम, चर नाम आदि) में कैसे बदला जाए।

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

यह एक बहुत अजीब स्टैक ट्रेस है:

Signal.h SIGTRAP तरह त्रुटियों जो के रूप में परिभाषित किया गया है की एक सूची है। यह dyld (गतिशील पुस्तकालय लोडर) में दुर्घटनाग्रस्त हो रहा है। इससे पता चलता है कि इसे गतिशील लाइब्रेरी या फ्रेमवर्क लोड करने में परेशानी हो रही है, जिसका अर्थ है कि यह सिस्टम कोड की लोडिंग में है (क्योंकि आपके पास मानक आईफोन पर तृतीय पक्ष गतिशील लाइब्रेरी नहीं हो सकती है)। ध्यान दें कि बाइनरी छवियों अनुभाग में, आपका कोड अभी तक लोड नहीं होता प्रतीत होता है (या शेष डंप को छोटा कर दिया गया था)? क्या आप गतिशील पुस्तकालयों (dlopen() या इसी तरह) की मैन्युअल लोडिंग करते हैं? यहां तक ​​कि यदि आप थे, तो आप main() को स्टैक पर होने की उम्मीद करेंगे यदि आपका प्रोग्राम वास्तव में लोड हो गया था ....

जब आप कहते हैं कि उन्होंने पुनर्स्थापित करने का प्रयास किया है, तो मुझे लगता है कि आपका ऐप आपका मतलब है? क्या इसका मतलब है कि उन्होंने आपके ऐप को हटा दिया और फिर इसे फिर से इंस्टॉल किया, या कुछ और? दिमाग में आने वाला सबसे संभावित कारण बंडल का भ्रष्टाचार है। लेकिन आपको लगता है कि हटाना और पुनर्स्थापित करना इसे ठीक करेगा। अधिक आक्रामक हटा दिया जाएगा, रीबूट, फिर पुन: स्थापित करें।

मेरा अगला प्रश्न यह होगा कि यह एक जेलब्रोकन आईफोन है या नहीं। मैं उपयोगकर्ता से आईफोन को रीबूट करने के लिए कहूंगा यदि वे पहले से नहीं हैं। मैं भी को ओएस की बहाली करने के लिए कहने के लिए प्रेरित करता हूं, लेकिन यह हमेशा एक अजीब बात है कि ग्राहक से ऐसा करने के लिए कहा जाए।

+0

मैंने उन्हें ऐप को अनइंस्टॉल करने के लिए कहा, फिर पुन: स्थापित करें, सुनिश्चित करें कि वे रीबूट किए गए हैं लेकिन मैं उन्हें यह कोशिश करने के लिए कहूंगा। मैं पुस्तकालयों के किसी भी मैनुअल loAding नहीं कर रहा हूँ। यदि बदतर खराब हो जाता है तो मैं देखता हूं कि वे ओएस पुनर्स्थापित करने के इच्छुक हैं या नहीं। मुझे नहीं लगता कि यह जेलब्रोकन है ... मुझे उन्हें अपने ओएस संस्करण और क्रैश लॉग खोजने में मदद करनी पड़ी, और उन्हें यह भी यकीन नहीं था कि उनके पास आइपॉड टच का आकार किस प्रकार था। इसलिए मुझे नहीं लगता कि वे जेल्रैक के लिए टाइप हैं लेकिन मैं गलत हो सकता हूं। – avizzini

0

क्रैश लॉग के साथ अंगूठे का एक सामान्य नियम है: यदि बैकट्रैक बेकार है, तो कंसोल लॉग आउटपुट देखें।

इस मामले में, शायद यह हो रहा है कि आप पुराने ओएस संस्करण में मौजूद चीजों का उपयोग नहीं कर रहे हैं। जब dyld (गतिशील लोडर) लोड समय पर प्रतीकों को हल करने का प्रयास करता है, तो उनमें से कुछ को खोजने में विफल रहता है, और या तो प्रतीक या पुस्तकालय कमजोर नहीं हो रहा है। कंसोल लॉग कहना चाहिए कि कौन सा प्रतीक/लाइब्रेरी लोड करने में विफल रहा।

सामान्य मामले में, आप केवल "आवश्यक" से "कमजोर" तक ढांचे को बदल सकते हैं।

4

मुझे यह त्रुटि भी मिली है और इसे ठीक कर दिया है। यह व्यक्ति ओएस 3 को सबसे अधिक संभावना से चला रहा है और आप ओएस 4 से कोड ब्लॉक का उपयोग कर रहे हैं, आपको लाइब्रेरी पर एक कमजोर लिंक सेट करने की आवश्यकता है ताकि वह ठीक से लोड हो सके। LLVM -weak_library /usr/lib/libSystem.B.dylib के लिए अपने निर्माण सेटिंग्स में

भी यहाँ iOS 4 app crashes at startup on iOS 3.1.3: Symbol not found: __NSConcreteStackBlock