जीएम के साथ एआरएम के लिए बनाई गई वस्तु को अलग करने की कोशिश कर रहा हूं I दुर्भाग्य से, ओबजेडम्प यह सोचने की कोशिश कर रहा है कि कोड एआरएम और अंगूठे है, और इसे गलत हो रहा है: यह सोचता है कि मेरा कोड अंगूठा है, जब वास्तव में एआरएम। मुझे लगता है कि objdump के पास सभी निर्देशों को थंब (-एमएफएफ-अंगूठे) के रूप में परिभाषित करने के लिए मजबूर करने का एक विकल्प है, लेकिन एआरएम मोड को चलाने के लिए कोई भी ऐसा नहीं है यह मेरे लिए एक बहुत ही अजीब चूक की तरह लगता है, और इसकी गंभीरता से मुझे प्राप्त करने की क्षमता में बाधा उत्पन्न होती है काम किया (इम एक एम्बेडेड डिवाइस पर और डिबगिंग के मेरे एकमात्र साधन disassembly को देखने के लिए है) Ive विभिन्न तरीकों की कोशिश की, जिसमें एक एआरएम वास्तुकला का उपयोग करने के लिए objdump को बताने की कोशिश भी शामिल है, जो अंगूठे का समर्थन नहीं करता है, लेकिन कुछ भी काम नहीं कर रहा है। किसी भी विचार (और हाँ, मुझे पता है कि निर्देश वास्तव में एआरएम हैं।) 25 अगस्त 11:43 बजे पूछा गया या तो कंपाइललिंकर या ओबजेडम्प में एक बग की तरह लगता है। आम तौर पर प्रतीकों को ठीक से चिन्हित किया जाना चाहिए यदि वे अंगूठे या एआरएम हैं और तदनुसार अलग हो जाते हैं। उस ने कहा, कुछ चीजें हैं जो आप कोशिश कर सकते हैं: सादा बाइनरी (-बी बाइनरी-डी) के रूप में फ़ाइल को व्याख्या करना - यह प्रतीक जांच को अक्षम करेगा और एआरएम के रूप में पूरी फाइल को अलग करेगा। डाउनसाइड: आउटपुट में बहुत कचरा, कोई अच्छा पता नहीं आईडीए प्रो का उपयोग करें भले ही यह गलती से अनुमान लगाया जाए, आप हमेशा अपने निर्णय को ओवरराइड कर सकते हैं इसके अलावा, इसका बहुत अच्छा निर्वासन पर्यावरण :) उत्तर दिया 25 अगस्त 11 को 16:56 मुझे प्रतीक जानकारी की आवश्यकता है, इसलिए मुझे पता है कि I39m क्या देख रहा है, इसलिए कच्चे बाइनरी का उपयोग करके इसे काट नहीं किया जा सकता, I प्रश्न में फाइल में डीबगिंग सूचना है, इसलिए चिह्नित जानकारी वहां होनी चाहिए। मेरी निर्माण प्रक्रिया जटिल है, लेकिन जीसीसी को किसी भी ऐसे विचारों में शामिल नहीं किया जा सकता है, जो चिन्हों को चिन्हित करना संभव हो सकता है _____ डेविड ने दियेगा Aug 26 11 10:42 यह कहना मुश्किल है कि मुद्दा क्या है I प्रतीक तालिका की सामग्री प्रिंट करें और print - insn (arm) को arm-dis. c पर देखें। हो सकता है कि आपको कुछ विचार मिले। ndash Igor Skochinsky अगस्त 26 11 13: 30 बजेडम्प (1) - लिनक्स मैन पेज विवरण objdump एक या अधिक ऑब्जेक्ट फाइलों के बारे में जानकारी प्रदर्शित करता है। विकल्पों को प्रदर्शित करने के लिए कौन सी विशेष जानकारी प्रदर्शित होती है। यह जानकारी ज्यादातर प्रोग्रामर जो कि संकलन उपकरण पर काम कर रहे हैं, के लिए उपयोगी है, जो प्रोग्रामर के विरोध में है, जो सिर्फ अपने प्रोग्राम को संकलित करने और काम करने के लिए चाहते हैं। objfile जांच करने वाली ऑब्जेक्ट फाइलें हैं जब आप अभिलेखागार निर्दिष्ट करते हैं, तो objdump प्रत्येक सदस्य ऑब्जेक्ट फ़ाइलों पर जानकारी दिखाता है। विकल्प के रूप में दिखाए गए विकल्प के लंबे और छोटे रूप, समकक्ष हैं। सूची- a, - d, - d, - e, - f, - g, - g, - h, - h, - p, - r, - r, - s, - s, से कम से कम एक विकल्प - टी, - टी, - वी, - एक्स दिया जाना चाहिए। - ए - आर्चीय-हेडर ओज फाइलों में से कोई भी अभिलेखागार हैं, तो आर्काइव हेडर जानकारी प्रदर्शित करें (एलएस-एल के समान प्रारूप में) जानकारी के अलावा आप आर टी वी के साथ सूचीबद्ध हो सकते हैं। objdump - a प्रत्येक संग्रह सदस्य के ऑब्जेक्ट फ़ाइल स्वरूप को दिखाता है --adjust-vma offset जब जानकारी डंपिंग, पहले सभी अनुभाग पतों में ओफ़्सेट जोड़ें। यह उपयोगी है यदि अनुभाग पटल प्रतीक तालिका के अनुरूप नहीं होते हैं, जो तब हो सकता है जब एक प्रारूप का उपयोग करते समय वर्गों को लगाया जा सकता है, जो कि एक सेक्शन पतों का प्रतिनिधित्व नहीं कर सकता, जैसे कि a. out - b bfdname --target bfdname निर्दिष्ट करें कि ऑब्जेक्ट फ़ाइलों के लिए ऑब्जेक्ट-कोड प्रारूप bfdname है यह विकल्प आवश्यक नहीं हो सकता है कि objdump स्वचालित रूप से कई स्वरूपों को पहचान सकता है। उदाहरण के लिए, fu. o के अनुभाग हेडर (-एच) से सारांश जानकारी प्रदर्शित होती है। जो स्पष्ट रूप से ओएसिस कंपाइलर द्वारा उत्पादित स्वरूप में एक वैक्स ऑब्जेक्ट फाइल के रूप में पहचान (-एम) है। आप - i विकल्प के साथ उपलब्ध स्वरूपों को सूचीबद्ध कर सकते हैं। - सी - डेमांगल शैली डीकोड (डीमैंगल) निम्न स्तरीय प्रतीक नाम उपयोगकर्ता-स्तर के नामों में। प्रणाली द्वारा तैयार किसी भी प्रारंभिक अंडरस्कोर को हटाने के अलावा, यह C फ़ंक्शन के नाम को पठनीय बनाता है। अलग-अलग कम्पाइलरों में अलग-अलग मंगेतर शैली होती है। वैकल्पिक डिमगलिंग शैली तर्क को आपके कंपाइलर के लिए उपयुक्त ऐप्पलिंग शैली चुनने के लिए उपयोग किया जा सकता है। - g - डिबगिंग डिबगिंग जानकारी प्रदर्शित करें यह फाइल में संग्रहीत STABS और IEEE डिबगिंग प्रारूप की जानकारी को पार्स करने का प्रयास करता है और इसे सी जैसे सिंटैक्स का उपयोग कर प्रिंट करता है। यदि इन प्रारूपों में से कोई भी नहीं मिला है तो यह विकल्प फ़ाइल में किसी भी DWARF सूचना को प्रिंट करने के लिए - W विकल्प पर वापस आ जाता है। - e - डिबगिंग-टैग की तरह-जी लेकिन जानकारी ctags टूल के साथ संगत प्रारूप में उत्पन्न होती है। - d --disassemble obzfile से मशीन निर्देशों के लिए कोडांतरक mnemonics प्रदर्शित करें यह विकल्प केवल उन वर्गों को डिस्मैंज़ कर देता है, जिनकी अनुशंसाएं होनी चाहिए। - डी - डिसीसेंबल-सभी पसंद-डी लेकिन सभी अनुभागों की सामग्री को अलग करना, न केवल उन निर्देशों की उम्मीद है। यदि लक्ष्य एक एआरएम वास्तुकला है तो इस स्विच में डिस्साइम्बलर को कोड खंडों में मिले डेटा के टुकड़ों को डिकोड करने का प्रभाव भी होता है जैसे कि वे निर्देश थे। - प्रीफिक्स-पतों को अलग करने पर, प्रत्येक पंक्ति पर पूरा पता मुद्रित करें यह पुराने disassembly प्रारूप है - EB - EL --endian ऑब्जेक्ट फ़ाइलों की अंत्यता निर्दिष्ट करें यह केवल असंतुलन को प्रभावित करता है यह उपयोगी हो सकता है जब फ़ाइल प्रारूप को अलग करना, जो एंड-एननेस जानकारी का वर्णन नहीं करता है, जैसे एस रिकॉर्ड। - f --फ़ाइल-हेडर ओज फाइलों में से प्रत्येक के समग्र शीर्ष लेख से सारांश सूचना प्रदर्शित करें - एफ --फ़ाइल-ऑफ़सेट जब एक प्रतीक प्रदर्शित किया जाता है, तब भी वर्गों को अलग करने पर, डेटा के क्षेत्र के ऑफसेट फ़ाइल को भी प्रदर्शित किया जाता है जो कि डंप किया जाना है। यदि शून्य को छोड़ दिया जा रहा है, तो जब विस्फोट शुरू होता है, तो उपयोगकर्ता को बताएं कि कितने शून्य निकाल दिए गए थे और उस स्थान का ऑफसेट फाइल जहां से विस्फोट शुरू हो गया है। जब डंपिंग सेक्शन, उस स्थान के ऑफसेट फ़ाइल को प्रदर्शित करें जहां से डंप शुरू होता है। --file-start-context निर्दिष्ट करें कि जब तक कि एक फ़ाइल से इंटरलिस्टेड स्रोत कोडडेडसैसैसैडैड (मान-एस) प्रदर्शित नहीं किया गया है जो अभी तक प्रदर्शित नहीं किया गया है, फ़ाइल की शुरुआत में संदर्भ का विस्तार करें। - एच - सेक्शन-हेडर - आइडर्स ऑब्जेक्ट फ़ाइल के अनुभाग हेडर से सारांश जानकारी प्रदर्शित करें। फ़ाइल खंड को गैरमानक पते पर स्थानांतरित किया जा सकता है, उदाहरण के लिए - टेक्स्ट का उपयोग करके - टाटा या एलडी के लिए टीबीएस विकल्प हालांकि, कुछ ऑब्जेक्ट फ़ाइल स्वरूप, जैसे। Aout, फाइल सेगमेंट के प्रारंभिक पते को संग्रहीत नहीं करते हैं। उन परिस्थितियों में, यद्यपि ld वर्गों को ठीक से स्थानांतरित करता है, objdump - h का उपयोग करके फ़ाइल अनुभाग शीर्षलेखों को सूचीबद्ध करने के लिए सही पता नहीं दिखाया जा सकता है। इसके बजाय, यह सामान्य पते दिखाता है, जो लक्ष्य के लिए निहित हैं। - H --help ओब्जाडंप और बाहर निकलने के लिए विकल्पों का सारांश प्रिंट करें। - i --info सभी आर्किटेक्चर और ऑब्जेक्ट स्वरूपों को - b या - m के साथ विनिर्देशन के लिए उपलब्ध सूची दिखाएं। - ज नाम - अनुभाग नाम केवल अनुभाग नाम के लिए जानकारी प्रदर्शित करें - l --line-number ऑब्जेक्ट कोड या रिलीज दिखाए गए फ़ाइल नाम और स्रोत लाइन नंबरों के साथ डिस्प्ले को लेबल करें (डीबगिंग सूचना का उपयोग करके)। केवल-डी के साथ उपयोगी - डी या - आर - एम मशीन --architecture मशीन ऑब्जेक्ट फ़ाइलों को अलग करने के लिए उपयोग करने के लिए आर्किटेक्चर को निर्दिष्ट करें। ऑब्जेक्ट फाइलों को अलग करते हुए यह उपयोगी हो सकता है जो वास्तुकला जानकारी का वर्णन नहीं करते हैं, जैसे एस-रिकॉर्ड आप - i विकल्प के साथ उपलब्ध आर्किटेक्चर की सूची कर सकते हैं। यदि लक्ष्य एक एआरएम वास्तुकला है तो इस स्विच का एक अतिरिक्त प्रभाव पड़ता है। यह disassembly को मशीन द्वारा निर्दिष्ट वास्तुकला द्वारा समर्थित उन निर्देशों को प्रतिबंधित करता है। यदि इस स्विच का उपयोग करने के लिए आवश्यक है क्योंकि इनपुट फ़ाइल में कोई आर्किटेक्चर जानकारी नहीं है, लेकिन यह भी सभी निर्देशों का उपयोग करने के लिए वांछित है - मर्म - एम विकल्प - डिसाइज़ेम्बलर-ऑप्शंस विकल्प डिस्साइम्बलर को लक्षित विशिष्ट जानकारी पास करें केवल कुछ लक्ष्य पर समर्थित यदि एक से अधिक disassembler विकल्प निर्दिष्ट करना आवश्यक है तो एकाधिक - M विकल्प का उपयोग किया जा सकता है या अल्पविराम से अलग सूची में रखा जा सकता है। यदि लक्ष्य एक एआरएम वास्तुकला है तो यह स्विच चुनने के लिए इस्तेमाल किया जा सकता है कि कौन सी रजिस्टर नाम सेट डिस्साइम्बलर के दौरान उपयोग किया जाता है निर्दिष्ट - M-reg-names-std (डिफ़ॉल्ट) एआरएम के निर्देश सेट प्रलेखन में उपयोग के रूप में रजिस्टर नामों का चयन करेगा, लेकिन रजिस्टर 13 नामक एसपी के साथ, 14 नामांकित रजिस्टर पंजीकृत करें और 15 पीसी पंजीकृत करें निर्दिष्ट - M-reg-names-apcs एआरएम प्रक्रिया कॉल मानक द्वारा उपयोग नाम सेट का चयन करेंगे, जबकि निर्दिष्ट - M reg-names-raw केवल रजिस्टर संख्या के बाद आर का उपयोग करेगा। एपीसीएस पंजीकरण नामकरण योजना पर दो प्रकार हैं - एम रेग-नाम-एटपीसीज और - एम रेग-नाम-स्पेशल-एटीपीसीएस जो एआरएमटहम्ब प्रक्रिया कॉल मानक नामकरण सम्मेलनों का उपयोग करते हैं। (या तो सामान्य रजिस्टर नामों या विशेष रजिस्टर नामों के साथ) इस विकल्प को एआरएम आर्किटेक्चर के लिए भी इस्तेमाल किया जा सकता है ताकि डिस्साम्बलर को स्विच के साथ-साथ सभी निर्देशों को व्याख्यान के रूप में निर्देशित करने के लिए मजबूर किया जा सके - disassembler-optionsforce-thumb। अन्य कंपाइलर द्वारा निर्मित अंगूठे कोड को अलग करने का प्रयास करते समय यह उपयोगी हो सकता है X86 के लिए, कुछ विकल्प - एम स्विच के डुप्लिकेट फ़ंक्शन, लेकिन बेहतर दानेदार नियंत्रण की अनुमति दें। निम्नलिखित से एकाधिक चयन को अल्पविराम से अलग स्ट्रिंग के रूप में निर्दिष्ट किया जा सकता है। x86-64 दिए गए आर्किटेक्चर के लिए i386 और i8086 चुनना disassembly। इंटेल और एट इंटेल सिंटैक्स मोड और एटीएमएमटी वाक्यविन्यास मोड के बीच चयन करें। इंटेल-मेमनिक और एट-मेमनिक इंटेल मेमनिक मोड और एटीएमपीएम स्मरनेमिक मोड के बीच चयन करें। इंटेल-मेमनिक इंटेल और एट-मेमनिक का तात्पर्य है। addr64 addr32 addr16 डेटा 32 और डेटा 16 डिफ़ॉल्ट पता आकार और ऑपरेंड आकार निर्दिष्ट करते हैं। इन चार विकल्प ओवरराइड होंगे यदि x86-64 i386 या i8086 विकल्प स्ट्रिंग में बाद में दिखाई देते हैं। अंत में, प्रत्यय जब एटीएमएमटी मोड में, एक असामान्य प्रत्यय को मुद्रित करने के लिए डिस्साइम्बलर को निर्देश देता है जब प्रत्यय ऑपेन्डस द्वारा अनुमानित किया जा सकता है। PowerPC के लिए, बुक ईबुक बुक ऑफ निर्देशों का डिसाउटमेंट नियंत्रित करता है। 32 और 64 का चयन करें PowerPC और PowerPC64 disassembly, क्रमशः। e300 e300 परिवार के लिए disassembly का चयन करता है। 440 PowerPC 440 के लिए disassembly का चयन करता है। पीपीसीपीएस PPC750CL के युग्मित एकल निर्देशों के लिए disassembly का चयन करता है एमआईपीएस के लिए यह विकल्प अनुदेश मेमनिक नामों के मुद्रण को नियंत्रित करता है और नामबद्ध निर्देशों में नाम रजिस्टर करता है। निम्न में से कई चयन को अल्पविराम से अलग स्ट्रिंग के रूप में निर्दिष्ट किया जा सकता है, और अमान्य विकल्प को अनदेखा कर दिया जा सकता है: कोई उपनाम नहीं कुछ छद्म अनुदेश मेमनिक के बदले कच्चे अनुदेश स्मारक मुद्रित करें अर्थात। प्रिंट दादू या या चाल के बदले, एसएलएल के बदले एनओपी, आदि। जीपीआर-नाम एबीआई प्रिंट जीपीआर (सामान्य प्रयोजन रजिस्टर) नाम निर्दिष्ट एबीआई के लिए उपयुक्त है। डिफ़ॉल्ट रूप से, जीपीआर नामों को बाइनरी के एबीआई के अनुसार चुना जाता है। निर्दिष्ट एबीआई के लिए उपयुक्त के रूप में एफएपी-नाम एबीआई प्रिंट एफपीआर (फ्लोटिंग पॉइंट रजिस्टर) नाम। डिफ़ॉल्ट रूप से, एफपीआर नंबर नाम के बजाय मुद्रित होते हैं। सीपी0-नाम एआरसीएच प्रिंट सीपी 0 (सिस्टम कंट्रोल कॉपरसेसर कॉरपोरसेसर 0) एआरसीएच द्वारा निर्दिष्ट सीपीयू या आर्किटेक्चर के लिए उचित नाम रजिस्टर करें। डिफ़ॉल्ट रूप से, CP0 पंजीकरण नाम आर्किटेक्चर के अनुसार चुना जाता है और बाइनरी का सीपीयू डिस्साम्बल होता है। एआरसीएच द्वारा निर्दिष्ट सीपीयू या आर्किटेक्चर के लिए उपयुक्त नामों के रूप में एचआरआर-नामों एआरएचएच प्रिंट एचडब्लूआर (हार्डवेयर रजिस्टर, आरडीएचआरएच निर्देश द्वारा उपयोग किया जाता है) डिफ़ॉल्ट रूप से, एचडब्ल्यूआर नाम आर्किटेक्चर और सीपीयू के अनुसार बाइनरी डिस्साम्बल के अनुसार चुना जाता है। रेग-नाम एबीआई प्रिंट जीपीआर और एफपीआर नाम जैसे एबीआई के लिए उपयुक्त है। reg-names ARCH चयनित CPU या आर्किटेक्चर के लिए उपयुक्त के रूप में CPU - विशिष्ट रजिस्टर नाम (CP0 रजिस्टर और एचडब्ल्यूआर नाम) प्रिंट करें। ऊपर सूचीबद्ध किसी भी विकल्प के लिए, एबीआई या एआरच को निर्दिष्ट प्रकार के रजिस्टरों के लिए, नामों के बजाय संख्या मुद्रित करने के लिए संख्यात्मक के रूप में निर्दिष्ट किया जा सकता है। आप --help विकल्प का उपयोग कर एबीआई और एआरच के उपलब्ध मूल्यों की सूची कर सकते हैं। वैक्स के लिए आप फ़ंक्शन प्रविष्टि पते को - एम प्रविष्टि के साथ निर्दिष्ट कर सकते हैं: 0xf00ba आप VAX बाइनरी फ़ाइलों को व्यवस्थित करने के लिए इस बार कई बार उपयोग कर सकते हैं, जिसमें प्रतीक तालिकाओं (जैसे रॉम डंप) शामिल नहीं हैं। इन मामलों में, फ़ंक्शन एंट्री मुखौटा अन्यथा वैक्स निर्देशों के रूप में डिकोड किया जाएगा, जो संभवत: बाकी फ़ंक्शन गलत ढंग से अलग किए जा रहे हैं। - p - निजी-हेडर प्रिंट जानकारी जो ऑब्जेक्ट फ़ाइल स्वरूप के लिए विशिष्ट है। मुद्रित सही जानकारी ऑब्जेक्ट फ़ाइल स्वरूप पर निर्भर करती है। कुछ ऑब्जेक्ट फ़ाइल स्वरूपों के लिए, कोई अतिरिक्त जानकारी मुद्रित नहीं है। - r --reloc फ़ाइल के स्थानांतरण प्रविष्टियों को प्रिंट करें। अगर - डी या - डी के साथ प्रयोग किया जाता है पुनर्स्थापना disassembly के साथ interspersed मुद्रित कर रहे हैं - आर - डायनेमिक - reloc फ़ाइल के गतिशील स्थानांतरण प्रविष्टियों को प्रिंट करें। गतिशील वस्तुओं के लिए यह केवल सार्थक है, जैसे कुछ प्रकार की साझा लाइब्रेरीज़ के लिए के रूप में - r अगर - डी या - डी के साथ प्रयोग किया जाता है पुनर्स्थापना disassembly के साथ interspersed मुद्रित कर रहे हैं - s --full-content अनुरोधित किसी भी वर्ग की पूरी सामग्री प्रदर्शित करें डिफ़ॉल्ट रूप से सभी गैर-खाली अनुभाग प्रदर्शित होते हैं। - S --source प्रदर्शन स्रोत कोड disassembly के साथ intermixed, यदि संभव हो तो। इसका मतलब है-डी। - प्रीफिक्स उपसर्ग - एस के साथ उपयोग किए जाने वाले पूर्ण पथ को जोड़ने के लिए उपसर्ग निर्दिष्ट करें - प्रीफिक्स-स्ट्रिप स्तर हार्डवर्ड पूर्ण पथ को पट्टी करने के लिए कितने प्रारंभिक निर्देशिका नाम बताता है। बिना प्रीफ़िक्स उपसर्ग के इसका कोई प्रभाव नहीं है --show-raw-insn निर्देशों को अलग करने पर, हेक्स के साथ-साथ प्रतीकात्मक रूप में निर्देश प्रिंट करें। यह डिफ़ॉल्ट है, जब - पूर्वफ़िक्स-पते का उपयोग किया जाता है। --no-show-raw-insn निर्देशों को अलग करने पर, निर्देश बाइट प्रिंट नहीं करें। यह डिफ़ॉल्ट है - जब पूर्वफ़िक्स-पते उपयोग किए जाते हैं - विस्तार-चौड़ाई चौड़ाई निर्देशों को अलग करने पर एकल पंक्ति पर चौड़ाई बाइट प्रदर्शित करें - WlLiaprmfFsoR-विवारफ्रालाइन, डिकोडेडलाइन, जानकारी, एब्रेविव, पबनेम, आर्क, मैक्रो, फ़्रेम, फ़्रेम-इंटरप, स्ट्रॉ, लोक, रेंज फ़ाइल में डिबग अनुभाग की सामग्री प्रदर्शित करती है, यदि कोई मौजूद है। यदि वैकल्पिक अक्षर या शब्दों में से एक स्विच का अनुसरण करता है तो केवल उन विशेष अनुभागों में पाया गया डाटा को डंप दिया जाएगा। - जी --स्टैब अनुरोधित किसी भी वर्ग की पूरी सामग्री प्रदर्शित करें.stab और. stab. index और. stab. excl अनुभागों की सामग्री को एक ELF फ़ाइल से प्रदर्शित करें। यह केवल सिस्टम पर उपयोगी है (जैसे सोलारिस 2.0) जिसमें। Stab डिबगिंग प्रतीक-तालिका प्रविष्टियां एक ELF अनुभाग में की जाती हैं। अधिकांश अन्य फ़ाइल स्वरूपों में, प्रतीक-तालिका प्रविष्टियों को डीबग करना, लिंकेज के प्रतीक के साथ इंटरलेव होते हैं, और --समर्थन आउटपुट में दिखाई देते हैं। - स्टार्ट-एड्रेस पता निर्दिष्ट पते पर डेटा प्रदर्शित करना प्रारंभ करें। यह - d के आउटपुट को प्रभावित करता है - आर और - s विकल्प --स्टॉप-पता पता निर्दिष्ट पते पर डेटा प्रदर्शित करना बंद करें। यह - d का उत्पादन प्रभावित करता है - आर और - s विकल्प - t --syms फ़ाइल की प्रतीक तालिका प्रविष्टियाँ प्रिंट करें यह एनएम प्रोग्राम द्वारा प्रदान की गई जानकारी के समान है, हालांकि प्रदर्शन प्रारूप अलग है। आउटपुट का प्रारूप फेंक दिया जा रहा फ़ाइल के प्रारूप पर निर्भर करता है, लेकिन दो मुख्य प्रकार हैं एक ऐसा दिखता है: जहां वर्ग कोष्ठक के अंदर की संख्या प्रतीक तालिका में प्रविष्टि की संख्या होती है, सेकंड संख्या अनुभाग संख्या है, फ़्ल मूल्य वैल्यू हैं, प्रतीकों का ध्वज बिट्स, टाइ नंबर संख्या प्रतीकों का प्रकार, एससीएल संख्या चिन्हों का भंडारण वर्ग है और एनएक्स मान प्रतीक के साथ जुड़े औक्सिलेटर प्रविष्टियों की संख्या है। पिछले दो फ़ील्ड प्रतीक मूल्य हैं और इसके नाम हैं। आम तौर पर अन्य एफ़एलएफ आधारित फाइलों के साथ आम तौर पर देखा जाने वाला प्रारूप, ऐसा दिखता है: यहां पहला नंबर है प्रतीकों का मान (कभी-कभी उसके पते के रूप में भेजा जाता है)। अगले फ़ील्ड वास्तव में वर्णों का एक सेट है और प्रतीक पर सेट किए गए फ्लैग बिट्स को दर्शाती है। ये वर्ण नीचे वर्णित हैं अगला अनुभाग वह खंड है जिसके साथ प्रतीक सम्बंधित है या एबीएस यदि धारा पूर्ण है (यानी किसी भी खंड से जुड़ा नहीं है), या यूएनडी अगर इस अनुभाग को फाइल में डाली जा रही है, लेकिन वहां परिभाषित नहीं किया गया है अनुभाग नाम के बाद एक और क्षेत्र आता है, एक संख्या, जो सामान्य प्रतीकों के लिए संरेखण है और दूसरे प्रतीक के लिए आकार है। अंत में प्रतीकों का नाम प्रदर्शित किया जाता है। ध्वज पात्रों को 7 समूहों में विभाजित किया गया है: एल यह एक स्थानीय (एल), वैश्विक (जी), अद्वितीय वैश्विक (यू), न तो वैश्विक और न ही स्थानीय (एक स्थान) या दोनों वैश्विक और स्थानीय () है। एक प्रतीक विभिन्न कारणों से न तो स्थानीय या वैश्विक हो सकता है, उदा। क्योंकि यह डिबगिंग के लिए प्रयोग किया जाता है, लेकिन यह शायद एक बग का संकेत है, अगर यह कभी भी दोनों स्थानीय और वैश्विक है अद्वितीय वैश्विक प्रतीक एएलएफ प्रतीक बाइंडिंग के मानक सेट के लिए एक जीएनयू एक्सटेंशन हैं। ऐसे प्रतीक के लिए गतिशील लिंकर यह सुनिश्चित करेगा कि पूरी प्रक्रिया में इस नाम के साथ सिर्फ एक प्रतीक है और उपयोग में टाइप किया गया है। प्रतीक कमज़ोर (डब्ल्यू) या मजबूत (एक स्थान) है प्रतीक एक निर्माता (सी) या एक साधारण प्रतीक (एक स्थान) को दर्शाता है। प्रतीक एक चेतावनी (डब्ल्यू) या एक सामान्य प्रतीक (एक स्थान) है। एक चेतावनी प्रतीक नाम प्रदर्शित होने के लिए एक संदेश है, यदि चेतावनी प्रतीक के बाद प्रतीक को संदर्भित किया जाता है। लिनक्स ओब्ज़डम्प कमान के उदाहरण (बाइनरी फाइल को अलग करें) लिनक्स में ऑब्ज़ैम्प कमांड ऑब्जेक्ट फाइलों पर पूरी तरह से जानकारी प्रदान करने के लिए उपयोग किया जाता है। यह कमांड मुख्यतः प्रोग्रामर्स द्वारा उपयोग किया जाता है जो कंपलर पर काम करते हैं, लेकिन फिर भी डीबगिंग की बात करते समय सामान्य प्रोग्रामर के लिए यह बहुत ही आसान उपकरण है। इस अनुच्छेद में, हम कुछ उदाहरणों के माध्यम से ओब्ज़डम्प आदेश का उपयोग करने के तरीके को समझेंगे। Objdump का मूल वाक्यविन्यास है: इस आदेश के लिए उपलब्ध विकल्पों की एक विस्तृत श्रृंखला है। हम इस ट्यूटोरियल में उनमें से एक अच्छी रकम को कवर करने का प्रयास करेंगे। इस आलेख में उल्लिखित सभी उदाहरणों में निम्न सी प्रोग्राम की ELF बाइनरी फ़ाइल का उपयोग किया गया है नोट: उपरोक्त सिर्फ एक परीक्षण कोड है जिसका उपयोग किसी अन्य उद्देश्य के लिए किया जा रहा था, लेकिन मुझे इस आलेख के लिए इसका उपयोग करने के लिए पर्याप्त सरल पाया गया। 1. - f विकल्प का उपयोग कर समग्र फ़ाइल शीर्षलेख की सामग्री प्रदर्शित करें निम्न उदाहरण पर विचार करें: तो हम देखते हैं कि समग्र फ़ाइल शीर्षलेख से संबंधित जानकारी आउटपुट में दिखाई गई थी। नोट: उदाहरणों में उपयोग किए जाने योग्य निष्पादन योग्य प्रारूप ELF है। इसके बारे में अधिक जानकारी के लिए, हमारे एएलएफ फ़ाइल प्रारूप पर आलेख देखें। 2. पी-ऑप्शन का उपयोग करते हुए ऑब्जेक्ट फॉर्मेट विशिष्ट फाइल हैडर सामग्री को प्रदर्शित करें निम्न उदाहरण ऑब्जेक्ट फ़ाइल स्वरूप विशिष्ट जानकारी प्रिंट करता है। 3. - एच विकल्प का उपयोग कर अनुभाग शीर्षकों की सामग्री प्रदर्शित करें एक ऑब्जेक्ट फ़ाइल में कई खंड हो सकते हैं। उनसे संबंधित सूचना-एच विकल्प का उपयोग करके मुद्रित किया जा सकता है। निम्नलिखित उदाहरण विभिन्न खंडों को दिखाते हैं जैसा कि आप देखते हैं कि कुल 26 हैं (केवल आंशिक आउटपुट दिखाया गया है)। इसलिए हम देखते हैं कि सभी सेक्शन हेडर से संबंधित जानकारी आउटपुट में मुद्रित की गई थी। उपरोक्त आउटपुट में, साइज भारित खंड का आकार है, वीएमए वर्चुअल मेमोरी एड्रेस को दर्शाता है, एलएमए लॉजिकल मेमोरी एड्रेस का प्रतिनिधित्व करती है, फाईल ऑफ इस सेक्शन 8217 फाइल की शुरुआत से ऑफसेट है, एल्गिन संरेखण, सामग्री, ALLOC, लोड को दर्शाता है , वाकई, आंकड़े झंडे हैं जो दर्शाते हैं कि किसी विशेष खंड को लोड किया जाना है या पढ़ने योग्य है आदि। - x विकल्प का उपयोग करके सभी शीर्षलेखों की सामग्री प्रदर्शित करें। ऑब्जेक्ट फ़ाइल में सभी हेडर से संबंधित जानकारी को - x का उपयोग करके पुनः प्राप्त किया जा सकता है विकल्प। निम्न उदाहरण सभी वर्गों को दिखाता है (केवल आंशिक आउटपुट यहां दिखाया गया है): 5. - de विकल्प का उपयोग कर निष्पादन योग्य वर्गों का प्रदर्शन कोडर सामग्री निम्न उदाहरण पर विचार करें: निष्पादन योग्य वर्गों (ऑब्जेक्ट फाइल में) की एन्बलर सामग्री इस आउटपुट (आंशिक आउटपुट नीचे दिखाए गए) में प्रदर्शित की जाती है: 6. - डी विकल्प का उपयोग करते हुए सभी अनुभागों की डिस्प्ले कोडर सामग्री प्रदर्शित करते हैं, सभी खंडों के कोडर सामग्री को आउटपुट में आवश्यक होने पर, विकल्प-डी का उपयोग किया जा सकता है निम्न आउटपुट पर विचार करें: तो हम देखते हैं कि प्रासंगिक आउटपुट प्रदर्शित किया गया था। चूंकि उत्पादन बहुत लंबा था, इसलिए मैंने इसे काटा। ध्यान दें कि मैंने आउटपुट को नियंत्रित करने के लिए पेजर कमांड का इस्तेमाल किया है। 7. - s विकल्प का उपयोग करके सभी अनुभागों की पूरी सामग्री प्रदर्शित करें निम्न उदाहरण पर विचार करें: तो हम देखते हैं कि सभी अनुभागों की पूरी सामग्री आउटपुट में प्रदर्शित की गई थी। 8. - g विकल्प का उपयोग कर डिबग जानकारी प्रदर्शित करें निम्न उदाहरण पर विचार करें: तो हम देखते हैं कि सभी उपलब्ध डिबग जानकारी आउटपुट में छपी हुई थी। 9. - t विकल्प का उपयोग करके प्रतीक तालिका (या तालिकाओं) की सामग्री प्रदर्शित करें निम्न उदाहरण पर विचार करें: तो हम देखते हैं कि प्रतीक तालिका की सामग्री आउटपुट में प्रदर्शित की गई थी। 10. - टी विकल्प का उपयोग करके गतिशील प्रतींक तालिका की सामग्री प्रदर्शित करें डायनेमिक प्रतीकों वे हैं जो रन समय के दौरान हल किए जाते हैं। इन प्रतीकों से संबंधित जानकारी-डी विकल्प का उपयोग करके पुनः प्राप्त की जा सकती हैं। निम्न उदाहरण पर विचार करें: तो हम देखते हैं कि डायनामिक प्रतीकों से संबंधित जानकारी आउटपुट में प्रदर्शित की गई थी। 11. - आर विकल्प का उपयोग कर फाइल में गतिशील स्थानांतरण प्रविष्टियां प्रदर्शित करें निम्न उदाहरण पर विचार करें: तो हम देखते हैं कि सभी गतिशील स्थानांतरण प्रविष्टियां आउटपुट में प्रदर्शित हुईं थीं। 12. - ज विकल्प का उपयोग करते हुए ब्याज का डिस्प्ले सेक्शन यह जानकारी बेहद उपयोगी है, जब आप उस अनुभाग से संबंधित हैं, जिसके बारे में जानकारी की आवश्यकता है। इस विकल्प में - j का उपयोग किया जाता है निम्न उदाहरण पर विचार करें: तो हम देखते हैं कि रॉडटा अनुभाग से संबंधित जानकारी ऊपर प्रदर्शित की गई थी। 13. 8211prefix-addresses विकल्प का उपयोग करते हुए पुराने disassembly प्रारूप का उपयोग करें पुराने प्रारूप प्रत्येक पंक्ति पर पूरा पता प्रिंट करता है। निम्न उदाहरण पर विचार करें: तो हम देखते हैं कि आउटपुट में पूरा पता मुद्रित किया गया था। 14. विकल्प का उपयोग कर फ़ाइल से इनपुट विकल्प स्वीकार करें यदि आप चाहते हैं, objdump के विकल्प को एक फ़ाइल से पढ़ा जा सकता है। यह 82168217 विकल्प का उपयोग करके किया जा सकता है निम्न उदाहरण पर विचार करें: ऊपर दिए गए इस उदाहरण में, मैंने - वि और - i विकल्प का इस्तेमाल किया है। जबकि - वी का उपयोग संस्करण की जानकारी को प्रिंट करने के लिए किया जाता है, - i का उपयोग आइडेंट फॉर्मेट और आर्किटेक्चर प्रदान करने के लिए किया जाता है। अब मैंने एक फाइल बनाई और वहां इन दो विकल्पों को जोड़ दिया। नीचे दिखाए गए अनुसार options. txt फ़ाइल को कॉल करके objdump को निष्पादित करें। यह उपरोक्त समान आउटपुट प्रदर्शित करता है, क्योंकि यह options. txt फ़ाइल से विकल्प पढ़ रहा है। BobJDump एक या अधिक ऑब्जेक्ट फ़ाइलों के बारे में जानकारी प्रदर्शित करता है। विकल्पों को प्रदर्शित करने के लिए कौन सी विशेष जानकारी प्रदर्शित होती है। यह जानकारी ज्यादातर प्रोग्रामर जो कि संकलन उपकरण पर काम कर रहे हैं, के लिए उपयोगी है, जो प्रोग्रामर के विरोध में है, जो सिर्फ अपने प्रोग्राम को संकलित करने और काम करने के लिए चाहते हैं। objfile जांच करने वाली ऑब्जेक्ट फाइलें हैं जब आप अभिलेखागार निर्दिष्ट करते हैं, तो objdump प्रत्येक सदस्य ऑब्जेक्ट फ़ाइलों पर जानकारी दिखाता है। विकल्प के रूप में दिखाए गए विकल्प के लंबे और छोटे रूप, समकक्ष हैं। सूची- a, - d, - d, - e, - f, - g, - g, - h, - h, - p, - p, - r, - r, - s, से कम से कम एक विकल्प - एस, - टी, - टी, - वी, - एक्स दिया जाना चाहिए। - ए - आर्चीय-हेडर ओज फाइलों में से कोई भी अभिलेखागार हैं, तो आर्काइव हेडर जानकारी प्रदर्शित करें (एलएस-एल के समान प्रारूप में) जानकारी के अलावा, आप आर टी वी के साथ सूचीबद्ध हो सकते हैं, objdump - a प्रत्येक संग्रह सदस्य के ऑब्जेक्ट फ़ाइल स्वरूप को दिखाता है --adjust-vma offset जब जानकारी डंपिंग, पहले सभी अनुभाग पतों में ओफ़्सेट जोड़ें। यह उपयोगी है यदि अनुभाग पटल प्रतीक तालिका के अनुरूप नहीं होते हैं, जो तब हो सकता है जब एक प्रारूप का उपयोग करते समय वर्गों को लगाया जा सकता है, जो कि एक सेक्शन पतों का प्रतिनिधित्व नहीं कर सकता, जैसे कि a. out - b bfdname --target bfdname निर्दिष्ट करें कि ऑब्जेक्ट फ़ाइलों के लिए ऑब्जेक्ट-कोड प्रारूप bfdname है यह विकल्प आवश्यक नहीं हो सकता है कि objdump स्वचालित रूप से कई स्वरूपों को पहचान सकता है। फ्यू.ओ. के अनुभाग हेडर (-एच) से सारांश जानकारी प्रदर्शित करता है जो स्पष्ट रूप से ओएसिस कंपाइलर द्वारा उत्पादित स्वरूप में एक वैक्स ऑब्जेक्ट फाइल के रूप में पहचान (-एम) है। आप - i विकल्प के साथ उपलब्ध स्वरूपों को सूचीबद्ध कर सकते हैं। लक्ष्य चयन देखें अधिक जानकारी के लिए। - सी - डेमांगल शैली डीकोड (डीमैंगल) निम्न स्तरीय प्रतीक नाम उपयोगकर्ता-स्तर के नामों में। प्रणाली द्वारा तैयार किसी भी प्रारंभिक अंडरस्कोर को हटाने के अलावा, यह C फ़ंक्शन के नाम को पठनीय बनाता है। अलग-अलग कम्पाइलरों में अलग-अलग मंगेतर शैली होती है। वैकल्पिक डिमगलिंग शैली तर्क को आपके कंपाइलर के लिए उपयुक्त ऐप्पलिंग शैली चुनने के लिए उपयोग किया जा सकता है। Cfilt देखें डिमेंलिंग पर अधिक जानकारी के लिए - g - डिबगिंग डिबगिंग जानकारी प्रदर्शित करें यह फाइल में संग्रहीत STABS और IEEE डिबगिंग प्रारूप की जानकारी को पार्स करने का प्रयास करता है और इसे सी जैसे सिंटैक्स का उपयोग कर प्रिंट करता है। यदि इन प्रारूपों में से कोई भी नहीं मिला है तो यह विकल्प फ़ाइल में किसी भी DWARF सूचना को प्रिंट करने के लिए - W विकल्प पर वापस आ जाता है। - e - डिबगिंग-टैग की तरह-जी लेकिन जानकारी ctags टूल के साथ संगत प्रारूप में उत्पन्न होती है। - d --disassemble obzfile से मशीन निर्देशों के लिए कोडांतरक mnemonics प्रदर्शित करें यह विकल्प केवल उन वर्गों को डिस्मैंज़ कर देता है, जिनकी अनुशंसाएं होनी चाहिए। - डी - डिसीसेंबल-सभी पसंद-डी लेकिन सभी अनुभागों की सामग्री को अलग करना, न केवल उन निर्देशों की उम्मीद है। इस विकल्प का कोड अनुभागों में अनुदेशों के विनिर्देशन पर भी सूक्ष्म प्रभाव होता है। जब विकल्प-डी प्रभाव में होता है, तो मान लेंगे कि कोड खंड में मौजूद कोई भी प्रतीक सीमाओं के बीच निर्देशों के बीच होता है और यह इस तरह की सीमा में जुदा होने से इंकार करेगा। जब विकल्प-डी प्रभावी होता है, तो यह धारणा को दबा दिया जाता है। इसका मतलब यह है कि - d और - d के आउटपुट के लिए संभव है अगर, उदाहरण के लिए, डेटा अनुभाग अनुभागों में संग्रहीत किया जाता है। यदि लक्ष्य एक एआरएम वास्तुकला है तो इस स्विच में डिस्साइम्बलर को कोड खंडों में मिले डेटा के टुकड़ों को डिकोड करने का प्रभाव भी होता है जैसे कि वे निर्देश थे। - प्रीफिक्स-पतों को अलग करने पर, प्रत्येक पंक्ति पर पूरा पता मुद्रित करें यह पुराने disassembly प्रारूप है - EB - EL --endian ऑब्जेक्ट फ़ाइलों की अंत्यता निर्दिष्ट करें यह केवल असंतुलन को प्रभावित करता है यह उपयोगी हो सकता है जब फ़ाइल प्रारूप को अलग करना, जो एंड-एननेस जानकारी का वर्णन नहीं करता है, जैसे एस रिकॉर्ड। - f --फ़ाइल-हेडर ओज फाइलों में से प्रत्येक के समग्र शीर्ष लेख से सारांश सूचना प्रदर्शित करें - एफ --फ़ाइल-ऑफ़सेट जब एक प्रतीक प्रदर्शित किया जाता है, तब भी वर्गों को अलग करने पर, डेटा के क्षेत्र के ऑफसेट फ़ाइल को भी प्रदर्शित किया जाता है जो कि डंप किया जाना है। यदि शून्य को छोड़ दिया जा रहा है, तो जब विस्फोट शुरू होता है, तो उपयोगकर्ता को बताएं कि कितने शून्य निकाल दिए गए थे और उस स्थान का ऑफसेट फाइल जहां से विस्फोट शुरू हो गया है। जब डंपिंग सेक्शन, उस स्थान के ऑफसेट फ़ाइल को प्रदर्शित करें जहां से डंप शुरू होता है। --file-start-context निर्दिष्ट करें कि जब तक कि एक फ़ाइल से इंटरलिस्टेड स्रोत कोडडेडसैसैसैडैड (मान-एस) प्रदर्शित नहीं किया गया है जो अभी तक प्रदर्शित नहीं किया गया है, फ़ाइल की शुरुआत में संदर्भ का विस्तार करें। - एच - सेक्शन-हेडर - आइडर्स ऑब्जेक्ट फ़ाइल के अनुभाग हेडर से सारांश जानकारी प्रदर्शित करें। फ़ाइल खंड को गैरमानक पते पर स्थानांतरित किया जा सकता है, उदाहरण के लिए - टेक्स्ट का उपयोग करके - Tdata। या एलडी के लिए टीबीएस विकल्प हालांकि, कुछ ऑब्जेक्ट फ़ाइल स्वरूप, जैसे। Aout, फाइल सेगमेंट के प्रारंभिक पते को संग्रहीत नहीं करते हैं। उन परिस्थितियों में, यद्यपि ld वर्गों को ठीक से स्थानांतरित करता है, objdump - h का उपयोग करके फ़ाइल अनुभाग शीर्षलेखों को सूचीबद्ध करने के लिए सही पता नहीं दिखाया जा सकता है। इसके बजाय, यह सामान्य पते दिखाता है, जो लक्ष्य के लिए निहित हैं। ध्यान दें, कुछ मामलों में, यह एक खंड के लिए संभव है कि दोनों को रीडोनली और एनओईएडीएडी एट्रिब्यूट सेट करें। ऐसे मामलों में NOREAD विशेषता प्राथमिकता लेती है, लेकिन objdump दोनों को रिपोर्ट करेगा क्योंकि झंडा बिट्स की सटीक सेटिंग महत्वपूर्ण हो सकती है - H --help ओब्जाडंप और बाहर निकलने के लिए विकल्पों का सारांश प्रिंट करें। - i --info सभी आर्किटेक्चर और ऑब्जेक्ट स्वरूपों को - b या - m के साथ विनिर्देशन के लिए उपलब्ध सूची दिखाएं। - ज नाम - अनुभाग नाम केवल अनुभाग नाम के लिए जानकारी प्रदर्शित करें - l --line-number ऑब्जेक्ट कोड या रिलीज दिखाए गए फ़ाइल नाम और स्रोत लाइन नंबरों के साथ डिस्प्ले को लेबल करें (डीबगिंग सूचना का उपयोग करके)। केवल-डी के साथ उपयोगी डी। या - आर - एम मशीन --architecture मशीन ऑब्जेक्ट फ़ाइलों को अलग करने के लिए उपयोग करने के लिए आर्किटेक्चर को निर्दिष्ट करें। ऑब्जेक्ट फाइलों को अलग करते हुए यह उपयोगी हो सकता है जो वास्तुकला जानकारी का वर्णन नहीं करते हैं, जैसे एस-रिकॉर्ड आप - i विकल्प के साथ उपलब्ध आर्किटेक्चर की सूची कर सकते हैं। यदि लक्ष्य एक एआरएम वास्तुकला है तो इस स्विच का एक अतिरिक्त प्रभाव पड़ता है। यह disassembly को मशीन द्वारा निर्दिष्ट वास्तुकला द्वारा समर्थित उन निर्देशों को प्रतिबंधित करता है। यदि इस स्विच का उपयोग करने के लिए आवश्यक है क्योंकि इनपुट फ़ाइल में कोई आर्किटेक्चर जानकारी नहीं है, लेकिन यह भी सभी निर्देशों का उपयोग करने के लिए वांछित है - मर्म - एम विकल्प - डिसाइज़ेम्बलर-ऑप्शंस विकल्प डिस्साइम्बलर को लक्षित विशिष्ट जानकारी पास करें केवल कुछ लक्ष्य पर समर्थित यदि एक से अधिक disassembler विकल्प निर्दिष्ट करना आवश्यक है तो एकाधिक - M विकल्प का उपयोग किया जा सकता है या अल्पविराम से अलग सूची में रखा जा सकता है। यदि लक्ष्य एक एआरएम वास्तुकला है तो यह स्विच चुनने के लिए इस्तेमाल किया जा सकता है कि कौन सी रजिस्टर नाम सेट डिसैसाम्बलर के दौरान उपयोग किया जाता है निर्दिष्ट - M-reg-names-std (डिफ़ॉल्ट) एआरएम निर्देश सेट दस्तावेज़ में उपयोग के रूप में रजिस्टर नामों का चयन करेगा, लेकिन रजिस्टर 13 नामक एसपी के साथ, 14 नामांकित रजिस्टर पंजीकृत करें और 15 पीसी पंजीकृत करें निर्दिष्ट - M-reg-names-apcs एआरएम प्रक्रिया कॉल मानक द्वारा उपयोग नाम सेट का चयन करेंगे, जबकि निर्दिष्ट - M reg-names-raw केवल रजिस्टर संख्या के बाद आर का उपयोग करेगा। एपीसीएस पंजीकरण नामकरण योजना पर दो प्रकार हैं - एम रेग-नाम-एटपीसीज और - एम रेग-नाम-स्पेशल-एटीपीसीएस जो एआरएमटहम्ब प्रक्रिया कॉल मानक नामकरण सम्मेलनों का उपयोग करते हैं। (या तो सामान्य रजिस्टर नामों या विशेष रजिस्टर नामों के साथ) इस विकल्प को एआरएम आर्किटेक्चर के लिए भी इस्तेमाल किया जा सकता है ताकि डिस्साम्बलर को स्विच के साथ-साथ सभी निर्देशों को व्याख्यान के रूप में निर्देशित करने के लिए मजबूर किया जा सके - disassembler-optionsforce-thumb। अन्य कंपाइलर द्वारा निर्मित अंगूठे कोड को अलग करने का प्रयास करते समय यह उपयोगी हो सकता है X86 के लिए, कुछ विकल्प - एम स्विच के डुप्लिकेट फ़ंक्शन, लेकिन बेहतर दानेदार नियंत्रण की अनुमति दें। निम्नलिखित से एकाधिक चयन को अल्पविराम से अलग स्ट्रिंग के रूप में निर्दिष्ट किया जा सकता है। x86-64 i386 i8086 दिए गए आर्किटेक्चर के लिए डिससैन्ड का चयन करें। इंटेल एट एट सिंटैक्स मोड और एटीएमएमटी सिंटैक्स मोड के बीच चयन करें। AMD64 intel64 AMD64 ISA और Intel64 ISA के बीच चयन करें इंटेल-स्मरनेमिक एट-मेमनिक इंटेल मेमनिक मोड और एटीएमटीटी स्मरनेमिक मोड के बीच चयन करें। नोट: इंटेल-मेमनिक इंटेल और एट-मेमनिक का तात्पर्य है। addr64 addr32 addr16 data32 data16 डिफ़ॉल्ट पता आकार और ऑपरेंड आकार निर्दिष्ट करें। इन चार विकल्प ओवरराइड होंगे यदि x86-64 i386 या i8086 विकल्प स्ट्रिंग में बाद में दिखाई देते हैं। प्रत्यय जब एटीएमएमटी मोड में, एक असामान्य प्रत्यय को मुद्रित करने के लिए डिस्साइम्बलर को निर्देश देता है जब प्रत्यय ऑपेन्डस द्वारा अनुमानित किया जा सकता है। PowerPC के लिए, बुक ईबुक बुक ऑफ निर्देशों का डिसाउटमेंट नियंत्रित करता है। 32 और 64 का चयन करें PowerPC और PowerPC64 disassembly, क्रमशः। e300 e300 परिवार के लिए disassembly का चयन करता है। 440 PowerPC 440 के लिए disassembly का चयन करता है। पीपीसीपीएस PPC750CL के युग्मित एकल निर्देशों के लिए disassembly का चयन करता है एमआईपीएस के लिए, यह विकल्प अनुदेश मेमोनीक नामों के मुद्रण को नियंत्रित करता है और नामबद्ध निर्देशों में नाम रजिस्टर करता है। निम्न में से एकाधिक चयन को अल्पविराम से अलग स्ट्रिंग के रूप में निर्दिष्ट किया जा सकता है, और अमान्य विकल्प को अनदेखा कर दिया जाता है: कोई उपनाम नहीं कुछ छद्म अनुदेश मेमनिक के बजाय कच्चे अनुदेश स्मारक मुद्रित करें अर्थात। प्रिंट डडु या या चाल के बजाय, एसएलएल के बजाय एनओपी, आदि। एमएसए एमएसए निर्देशों को अलग करना virt वर्चुअलाइजेशन एएसई निर्देशों को अलग करें xpa एक्सएक्टेड भौतिक पता (XPA) एएसई निर्देशों को अलग करना। जीपीआर-नाम निर्दिष्ट एबीआई के लिए उपयुक्त के रूप में एबीआई प्रिंट जीपीआर (सामान्य प्रयोजन रजिस्टर) नाम। By default, GPR names are selected according to the ABI of the binary being disassembled. fpr-names ABI Print FPR (floating-point register) names as appropriate for the specified ABI. By default, FPR numbers are printed rather than names. cp0-names ARCH Print CP0 (system control coprocessor coprocessor 0) register names as appropriate for the CPU or architecture specified by ARCH. By default, CP0 register names are selected according to the architecture and CPU of the binary being disassembled. hwr-names ARCH Print HWR (hardware register, used by the rdhwr instruction) names as appropriate for the CPU or architecture specified by ARCH. By default, HWR names are selected according to the architecture and CPU of the binary being disassembled. reg-names ABI Print GPR and FPR names as appropriate for the selected ABI. reg-names ARCH Print CPU-specific register names (CP0 register and HWR names) as appropriate for the selected CPU or architecture. For any of the options listed above, ABI or ARCH may be specified as numeric to have numbers printed rather than names, for the selected types of registers. You can list the available values of ABI and ARCH using the --help option. For VAX, you can specify function entry addresses with - M entry:0xf00ba. You can use this multiple times to properly disassemble VAX binary files that dont contain symbol tables (like ROM dumps). In these cases, the function entry mask would otherwise be decoded as VAX instructions, which would probably lead the rest of the function being wrongly disassembled. - p --private-headers Print information that is specific to the object file format. The exact information printed depends upon the object file format. For some object file formats, no additional information is printed. - P options --private options Print information that is specific to the object file format. The argument options is a comma separated list that depends on the format (the lists of options is displayed with the help). For XCOFF, the available options are: header aout sections syms relocs lineno, loader except typchk traceback toc ldinfo Not all object formats support this option. In particular the ELF format does not use it. - r --reloc Print the relocation entries of the file. If used with - d or - D. the relocations are printed interspersed with the disassembly. - R --dynamic-reloc Print the dynamic relocation entries of the file. This is only meaningful for dynamic objects, such as certain types of shared libraries. As for - r. if used with - d or - D. the relocations are printed interspersed with the disassembly. - s --full-contents Display the full contents of any sections requested. By default all non-empty sections are displayed. - S --source Display source code intermixed with disassembly, if possible. Implies - d. --prefix prefix Specify prefix to add to the absolute paths when used with - S. --prefix-strip level Indicate how many initial directory names to strip off the hardwired absolute paths. It has no effect without --prefix prefix. --show-raw-insn When disassembling instructions, print the instruction in hex as well as in symbolic form. This is the default except when --prefix-addresses is used. --no-show-raw-insn When disassembling instructions, do not print the instruction bytes. This is the default when --prefix-addresses is used. --insn-width width Display width bytes on a single line when disassembling instructions. - WlLiaprmfFsoRt --dwarfrawline, decodedline, info, abbrev, pubnames --dwarfaranges, macro, frames, frames-interp, str, loc --dwarfRanges, pubtypes, traceinfo, traceabbrev --dwarftracearanges, gdbindex Displays the contents of the debug sections in the file, if any are present. If one of the optional letters or words follows the switch then only data found in those specific sections will be dumped. Note that there is no single letter option to display the content of trace sections or. gdbindex. Note: the output from the info option can also be affected by the options --dwarf-depth. the --dwarf-start and the --dwarf-check. --dwarf-depth n Limit the dump of the. debuginfo section to n children. This is only useful with --dwarfinfo. The default is to print all DIEs the special value 0 for n will also have this effect. With a non-zero value for n. DIEs at or deeper than n levels will not be printed. The range for n is zero-based. --dwarf-start n Print only DIEs beginning with the DIE numbered n. This is only useful with --dwarfinfo. If specified, this option will suppress printing of any header information and all DIEs before the DIE numbered n. Only siblings and children of the specified DIE will be printed. This can be used in conjunction with --dwarf-depth. --dwarf-check Enable additional checks for consistency of Dwarf information. - G --stabs Display the full contents of any sections requested. Display the contents of the. stab and. stab. index and. stab. excl sections from an ELF file. This is only useful on systems (such as Solaris 2.0) in which. stab debugging symbol-table entries are carried in an ELF section. In most other file formats, debugging symbol-table entries are interleaved with linkage symbols, and are visible in the --syms output. --start-address address Start displaying data at the specified address. This affects the output of the - d. - r and - s options. --stop-address address Stop displaying data at the specified address. This affects the output of the - d. - r and - s options. - t --syms Print the symbol table entries of the file. This is similar to the information provided by the nm program, although the display format is different. The format of the output depends upon the format of the file being dumped, but there are two main types. One looks like this: where the number inside the square brackets is the number of the entry in the symbol table, the sec number is the section number, the fl value are the symbols flag bits, the ty number is the symbols type, the scl number is the symbols storage class and the nx value is the number of auxilary entries associated with the symbol. The last two fields are the symbols value and its name. The other common output format, usually seen with ELF based files, looks like this: Here the first number is the symbols value (sometimes refered to as its address). The next field is actually a set of characters and spaces indicating the flag bits that are set on the symbol. These characters are described below. Next is the section with which the symbol is associated or ABS if the section is absolute (ie not connected with any section), or UND if the section is referenced in the file being dumped, but not defined there. After the section name comes another field, a number, which for common symbols is the alignment and for other symbol is the size. Finally the symbols name is displayed. The flag characters are divided into 7 groups as follows: l g u. The symbol is a local (l), global (g), unique global (u), neither global nor local (a space) or both global and local (). A symbol can be neither local or global for a variety of reasons, e. g. because it is used for debugging, but it is probably an indication of a bug if it is ever both local and global. Unique global symbols are a GNU extension to the standard set of ELF symbol bindings. For such a symbol the dynamic linker will make sure that in the entire process there is just one symbol with this name and type in use. w The symbol is weak (w) or strong (a space). C The symbol denotes a constructor (C) or an ordinary symbol (a space). W The symbol is a warning (W) or a normal symbol (a space). A warning symbols name is a message to be displayed if the symbol following the warning symbol is ever referenced. I i The symbol is an indirect reference to another symbol (I), a function to be evaluated during reloc processing (i) or a normal symbol (a space). d D The symbol is a debugging symbol (d) or a dynamic symbol (D) or a normal symbol (a space). F f O The symbol is the name of a function (F) or a file (f) or an object (O) or just a normal symbol (a space). - T --dynamic-syms Print the dynamic symbol table entries of the file. This is only meaningful for dynamic objects, such as certain types of shared libraries. This is similar to the information provided by the nm program when given the - D ( --dynamic ) option. --special-syms When displaying symbols include those which the target considers to be special in some way and which would not normally be of interest to the user. - V --version Print the version number of objdump and exit. - x --all-headers Display all available header information, including the symbol table and relocation entries. Using - x is equivalent to specifying all of - a - f - h - p - r - t. - w --wide Format some lines for output devices that have more than 80 columns. Also do not truncate symbol names when they are displayed. - z --disassemble-zeroes Normally the disassembly output will skip blocks of zeroes. This option directs the disassembler to disassemble those blocks, just like any other data.
Comments
Post a Comment