2009-08-17 8 views
6

क्रैश रिपोर्ट का प्रतीक होने पर, मैंने देखा कि रेखा संख्याएं बंद हैं। मैंने इस परियोजना का परीक्षण एक परियोजना के साथ किया जिसमें मैं जानबूझकर दुर्घटना का कारण बनता हूं। ऐसा लगता है कि जेनरेट लाइन नंबर में कुछ लाइनें शामिल नहीं हैं, उदा। टिप्पणी लाइन या कंपाइलर प्रीप्रोसेसर स्टेटमेंट्स (सुनिश्चित नहीं है कि यह क्या करता है और इसमें शामिल नहीं है) ...प्रतीकात्मक क्रैश रिपोर्ट (आईफोन/मैक) में सही रेखा संख्या कैसे प्राप्त करें?

क्या संकेतित क्रैश रिपोर्ट में "ऑफ" लाइन संख्या से कोड की वास्तविक रेखा में जाने का कोई आसान तरीका है स्रोत?

संपादित करें: एक symbolicated क्रैश रिपोर्ट में एक पंक्ति का एक उदाहरण:

7 Luisterpaal 0x00005de2 -[SWFMP3 connection:didReceiveData:] (SWFMP3.m:320) 

तो, लाइन नंबर 320 लगभग सही है, लेकिन वास्तव में नहीं। यह कुछ लाइनें बंद है ...

उत्तर

6

एक शब्द में ... नहीं। आप एक दुर्घटना रिपोर्ट में इस तरह की एक पंक्ति पर देख रहे हैं:

0 com.apple.CoreFoundation 0x95cb046b CFArrayAppendValue + 43

"+43" एक लाइन नंबर नहीं है, लेकिन समारोह की शुरुआत से एक स्मृति स्थान। जैसा कि आपने लिखा है, कोड संकलित बाइनरी में मौजूद नहीं है - संकलक अनुकूलित करता है और कोड को बदलता है (कम से कम रिलीज बिल्ड में, कम से कम) ताकि यह अक्सर आपके द्वारा लिखे गए मेल से मेल नहीं खाता है।

दुर्भाग्यवश, समाधान उस व्यक्ति को एक डीबग संस्करण के साथ दुर्घटना का अनुभव करने के लिए प्रदान करना है जिसे आप रिमोट डीबग कर सकते हैं या कम से कम एनएसएलओजी() कथन निकाल सकते हैं ताकि इसे ट्रैक करने में मदद मिल सके, और/या छोटे तरीकों को लिख सकें।

+2

"छोटे तरीकों को लिखने" के लिए उपरोक्त :) :) – rpetrich

+0

मेरा मतलब है कि एक जटिल क्रैश लॉग की संख्या उदा। "320" में: 7 लुइस्टरपाल 0x00005de2 - [SWFMP3 कनेक्शन: didReceiveData:] (SWFMP3.m: 320) –

3

यह Technical Note दिखाता है कि कैसे कोड

+0

मैं अधिक सटीक रेखा संख्या प्राप्त करने में सक्षम नहीं था, लेकिन यह बुकमार्क करने के लिए एक हत्यारा संसाधन है। – ckhan

0

मैं इस समस्या को भी थी, लेकिन करने के लिए रिपोर्ट की वजह से ही मैं क्या द्विआधारी जो दुर्घटनाग्रस्त हो गया में संकलित किया गया था की तुलना में कोड के एक नए संस्करण देख रहा था से संबंधित। जब मैं अपने स्रोत इतिहास में वापस गया और स्रोत के इसी संस्करण को पाया, तो रेखा संख्या बिल्कुल मेल खाती थी।

संबंधित मुद्दे