2011-07-12 8 views
5

मैं आईफोन क्रैश रिपोर्ट का विश्लेषण करने की कोशिश कर रहा हूं।क्रैशलॉग: "एआरएम थ्रेड स्टेट" क्या है

और वहाँ कुछ है कि मुझे समझ नहीं आता है:

Thread 6 crashed with ARM Thread State: 
r0: 0x00000000 r1: 0x00000000  r2: 0x00000001  r3: 0x00000000 
r4: 0x077aa000 r5: 0x00000006  r6: 0x0010540c  r7: 0x077a9198 
r8: 0x001a0420 r9: 0x00000065  r10: 0x3fcb8acc  r11: 0x310d1b68 
ip: 0x00000148 sp: 0x077a918c  lr: 0x36ba33bb  pc: 0x32a29a1c 
cpsr: 0x00000010 

क्या r0, आर 1, rx हैं ??

जब मैं देखता हूँ कि:

r3: 0x00000000 

मैं मान सकते हैं कि एक "वस्तु" R3 नहीं के बराबर है?

carshlogs के बारे में अन्य बातों के समझने के लिए किसी भी मदद का स्वागत :-)

+0

दुर्घटना लॉग क्या मतलब के माध्यम से WWDC2010 के लिए वीडियो पर एक नजर डालें मुझे लगता है कि सत्र 317, वे बताते हैं। उन पर ध्यान केंद्रित करने की मुख्य बात क्रैश किए गए धागे को देख रही है और यह निर्धारित करने के लिए कि यह किस बिंदु पर दुर्घटनाग्रस्त हो गया है, अपने स्टैक में अपने ऐप का नाम ढूंढ रहा है। –

उत्तर

5

ये हाथ प्रोसेसर के रजिस्टरों हैं के रूप में वे सवाल में थ्रेड के लिए थे।

अधिकांश आरएक्स रजिस्टरों के लिए, आप उन्हें ऑब्जेक्ट्स की तुलना में ऑब्जेक्ट्स के पॉइंटर्स के रूप में बेहतर सोच सकते हैं। हालांकि, वे प्रत्यक्ष मूल्य या पते भी रख सकते हैं।

'पीसी' रजिस्टर में प्रोसेसर निष्पादित करने की कोशिश की गई कोड का अंतिम पता होता है। यह एक nil पॉइंटर को हटाने और पता शून्य से कोड निष्पादित करने का प्रयास करके EXC_BAD_ACCESS के बीच अंतर बताने के लिए उपयोगी है।

आप उनके यहां उपयोग की एप्पल के प्रलेखन पा सकते हैं: http://developer.apple.com/library/ios/#documentation/Xcode/Conceptual/iPhoneOSABIReference/Articles/ARMv6FunctionCallingConventions.html

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