को अलग करने के लिए आईओएस क्रैश डंप में ऑफसेट्स को मिलान करना मुझे ओटोल द्वारा आउटपुट के रूप में बाइनरी के डिस्सेप्लिब्स में ऑफ़सेट के साथ आईओएस क्रैश डंप के स्टैक निशान में ऑफ़सेट से मिलान करने में समस्या हो रही है।बाइनरी
क्या कोई यह पुष्टि कर सकता है कि सिद्धांत में मैं इनसे कैसे मेल खाता हूं। उदाहरण के लिए, अगर मैं क्रैश डंप में एक लाइन मिलती है:
0 myapp 0x00005b0a 0x1000 + 19210
मैं उम्मीद करेंगे बाइनरी फ़ाइल में हमलावर शिक्षा का ऑफसेट 0x5b0a, 0x4b0a .... या कुछ और होना करने के लिए?
हेडर सूचना के अपने डिकोडिंग में, otool भी देता है, उदाहरण के लिए, इस जानकारी (वास्तविक कोड ऑफसेट 0x0000224c पर फ़ाइल में शुरू होता है):
Section
sectname __text
segname __TEXT
addr 0x0000224c
size 0x00063ad2
offset 4684
align 2^2 (4)
reloff 0
nreloc 0
type S_REGULAR
attributes PURE_INSTRUCTIONS SOME_INSTRUCTIONS
reserved1 0
reserved2 0
तो, मैं 100% यकीन नहीं था मैं इसे सही तरीके से व्याख्या कर रहा था, लेकिन ऐसा लगता है कि फ़ाइल में + 0x224c पर कोड, स्मृति में 0x124c ऑफसेट पर समाप्त होता है, लेकिन तब मुझे बिल्कुल यकीन नहीं था कि यह किस प्रकार फिट हुआ है, उदाहरण के लिए, स्थान 0x1000।
मेरी समस्या यह है कि ऑफ़सेट 0x5b0a ऑफसेट, न तो निर्देश और न ही 0x4b0a पर और न ही 0x6b0a पर प्रश्न में वास्तविक निर्देश होने के रूप में समझ में आता है (इस तथ्य के साथ कि जैसे स्थान ढेर के नीचे और फिर डॉन शाखा निर्देशों को इंगित नहीं करते हैं)।
(मुझे पता है कि, कम से कम एआरएम की प्रारम्भिक अवतार पर, वहाँ निर्देश पाइपलाइन की वजह से पीसी के मूल्य और इसी स्मृति पते के बीच अंतर क्यों था। मैं संभालने था कि इस तरह के एक अंतर लिया जाएगा क्रैश डंप में रिपोर्ट किए गए ऑफ़सेट में, या किसी भी दर पर, मैं शाखा निर्देश को प्रश्न में कुछ निर्देशों को देखता हूं, किसी एक तरफ से यह इंगित करता है कि इस तरह का अंतर ध्यान में नहीं लिया गया था ...)
क्या कोई भी कोई प्रकाश डाल सकता है?
क्या कोई कारण है कि आप केवल प्रतीकात्मक नहीं हो सकते हैं? http://stackoverflow.com/questions/3832900/how-to-manually-symbolicate-ios-crash-to-view-crash-logs/8648232#8648232 –
मैं * बस * प्रतीक नहीं कर सकता क्योंकि मेरे पास नहीं है प्रतीक फ़ाइल (कोड किसी तीसरे पक्ष द्वारा संकलित किया गया है)। हालांकि, अगर यह एकमात्र विकल्प है तो मुझे लगता है कि मुझे यह पूछना होगा कि क्या वे प्रतीक फ़ाइल प्रदान कर सकते हैं या नहीं। तो यह और भी है कि अगर ऑफसेट की गणना करने का कोई तरीका है, तो यह इस विशेष मामले में मेरे लिए एक तेज प्रक्रिया है। –