Friday 8 December 2017

Obj बाइनरी विकल्प


वेवफ्रंट ऑब्जेक्ट (ओबीजे) आयात करना ओबीजे फ़ाइलों से आयातित फाइल ज्यामिति अधिकतम 3ds में संपादन योग्य जाल या संपादन योग्य पाली ऑब्जेक्ट्स में दिखाई देती हैं। संबंधित सामग्री और नक्शे का आयात समर्थित है। नोट जब आप खींचें और छोड़कर ओबीजे फ़ाइल आयात करते हैं डिफ़ॉल्ट रूप से आयातक ओबीजे आयात विकल्प संवाद प्रदर्शित नहीं करता है। संवाद देखने के लिए, जब आप ड्रैग और ड्रॉप करते हैं तो Ctrl कुंजी को दबाए रखें। ओबीजे फ़ाइल आयात करने के लिए: आयात करने के लिए फ़ाइल चुनें संवाद खुलता है खोलने के लिए ओबीजे फ़ाइल चुनें और खोलें क्लिक करें। आयातक संवाद खुलता है आयात पैरामीटर आयात करने और सेट करने के लिए ऑब्जेक्ट चुनें। विवरण के लिए, निम्न इंटरफेस अनुभाग देखें। आयात पर क्लिक करें। आयात के दौरान, एक संवाद प्रगति दिखा रहा है और आयातित ऑब्जेक्ट के नाम खुलता है। यदि कोई नाम विरोधाभास होता है, तो एक डायलॉग आपको ऑब्जेक्ट को छोड़ना या नाम बदलने का मौका खोलता है। विकल्प के लिए एलईडी आइकन संवाद इंगित करता है कि कौन सी फीचर्स ओबीजे फ़ाइल में हैं लाल और हरे रंग के आइकनों के माध्यम से जो एलईड की तरह दिखते हैं यह सुविधा ओबीजे फ़ाइल में मौजूद है। यह सुविधा ओबीजे फ़ाइल में मौजूद नहीं है। OBJ फ़ाइल आयात करने से पहले मौजूदा दृश्य को स्मृति से हटा देता है आयातक प्रत्येक आयातित ऑब्जेक्ट के नाम पर यहां दर्ज किए गए पाठ को तैयार करता है। एकल मेष के रूप में आयात करें चालू होने पर, आयातक ओबीजे फ़ाइल की सामग्री को एक संपादन योग्य जाल ऑब्जेक्ट में जोड़ता है, और ऑब्जेक्ट को फ़ाइल के समान नाम देता है (फाइल नाम एक्सटेंशन के बिना)। उदाहरण के लिए, यदि आप एक एकल मेष के रूप में आयात करते हैं जिसे नाम दिया गया एक फ़ाइल windowparts. obj ओबीजे फ़ाइल में सभी अलग ऑब्जेक्ट विंडोिपर्ट नामित एक एकल संपादन योग्य जाल ऑब्जेक्ट में जोड़ दिए गए हैं। संपादन योग्य पाली के रूप में आयात करें जब चालू होता है, तो संपादन योग्य मेष ऑब्जेक्ट्स के बजाय वॉचफ्रंट ज्यामिति को संपादन योग्य पॉली ऑब्जेक्ट के रूप में आयात करता है। Defaultoff। जब यह सुनिश्चित करता है कि आयातित बहुभुज त्रिकोणीय होते हैं, जैसे कि संपादन योग्य पॉली सतहों। यह उपयोगी हो सकता है जब आप एक मॉडलिंग प्रोग्राम से मेष आयात करते हैं जो त्रिकोणीय बहुभुज को सुनिश्चित नहीं करता है। डिफ़ॉल्ट। चेतावनी Retriangulate बहुभुज शीर्ष क्रम को बदल सकते हैं, इसलिए जब यह विकल्प चालू होता है, ओबीजे प्रारूप में वापस जाल को निर्यात करना मूल जाल से मेल खाता है, बिल्कुल नहीं। कुछ एप्लिकेशन, जैसे कि मडबॉक्स और जेबब्रश शीर्ष क्रम पर निर्भर: यदि आप इनमें से किसी एक के साथ काम कर रहे हैं, तो दोबारा विरासत को बंद करें युक्ति जब आप किसी विशेष एप्लिकेशन के साथ उपयोग किए गए ओबीजे फ़ाइलों को आयात और निर्यात करते हैं, तो स्थिरता सुनिश्चित करने के लिए प्रीसेट का उपयोग करें फ़ाइल में ऑब्जेक्ट की सूची के ऊपर, केवल पढ़ने के लिए फ़ील्ड के रूप में प्रदर्शित होने पर, ओबीजे फ़ाइल का नाम और फ़ाइल में चेहरे की कुल संख्या है। आयातित ओबीजे फ़ाइल में ऑब्जेक्ट इस स्क्रॉलिंग सूची में दिखाई देते हैं। प्रत्येक एंट्री में ऑब्जेक्ट नाम और ऑब्जेक्ट में चेहरे की संख्या, प्लस ऑब्जेक्ट नाम के बाईं ओर एक चेकबॉक्स, प्रति ऑब्जेक्ट आयात करने और अक्षम करने के लिए होता है। डिफ़ॉल्ट रूप से, फ़ाइल में सभी वस्तुओं के लिए आयात सक्षम किया गया है। किसी व्यक्तिगत ऑब्जेक्ट के लिए आयात को टॉगल करने के लिए, सूची में इसके चेकबॉक्स पर क्लिक करें। आप आयात को सक्षम और अक्षम करने के लिए सूची के निचले भाग में नियंत्रण का उपयोग भी कर सकते हैं (निम्नलिखित देखें)। आयात सक्षम करने योग्य चेकबॉक्स की स्थिति को संशोधित करने के लिए इन बटनों का उपयोग करें सभी सूची में सभी ऑब्जेक्ट सक्षम करता है। कोई भी ऑब्जेक्ट को अक्षम नहीं करता, प्रत्येक चेकबॉक्स की स्थिति को उलट कर देता है। खोज मानदंड को संतुष्ट करने वाले ऑब्जेक्ट को सक्षम करने के लिए इनवर्टिंग बटन के दाईं ओर स्थित वाजिब कार्ड के साथ खोज शब्द दर्ज करें। उदाहरण के लिए, सभी सूची आइटम को सक्षम करने के लिए जिनके नाम क्षेत्र से शुरू होते हैं, sph दर्ज करें आप मानक खोज वर्ण का भी उपयोग कर सकते हैं एक एकल चरित्र का प्रतिनिधित्व करने के लिए उदाहरण के लिए, बॉक्स के साथ शुरू होने वाले सभी चार-अक्षर के नामों को सक्षम करने के लिए, खोज स्ट्रिंग बॉक्स का उपयोग करें। बाद में, सभी वाई-अक्ष के मूल्यों को Z अक्ष और उपाध्यक्ष विपरीत में स्थानांतरित किया जाता है। इसे का उपयोग करें जब Poser और अन्य प्रोग्राम से आयात करते हैं जो ऊर्ध्वाधर अक्ष के रूप में वाई और गहराई अक्ष के रूप में Z का उपयोग करते हैं। अपने केंद्र में प्रत्येक आयातित ऑब्जेक्ट की धुरी की स्थिति। बंद होने पर, पिवोट्स विश्व केंद्र पर स्थित हैं: (0,0,0) स्प्लिंस के आयात को सक्षम करता है जब पर, बनावट निर्देशांक आयातित फ़ाइल से लोड हो जाते हैं, मौजूद होने पर, और ज्यामिति से संबंधित चालू होने पर, समूहों के बीच रंग बदलाव के बारे में जानकारी भरी हुई है। देखना और चौरसाई बदलना देखें इन नियंत्रणों को प्रभावित करता है कि कैसे सामान्य आयात किया जाता है (या आवश्यक हो, यदि आवश्यक हो) फाइल से आयात करें (डिफ़ॉल्ट।) ओबीजे फ़ाइल में उपयोग किए जाने वाले नॉर्मल आयात करें। यदि ओबीजे फ़ाइल में नॉर्मल नहीं है, तो आयातित चौरसाई समूहों का इस्तेमाल करते हुए नॉर्मल उत्पन्न होते हैं। अगर ओबीजे फ़ाइल चौरसाई समूहों को निर्दिष्ट नहीं करती है, तो सभी चेहरों को चौरसाई समूह समेत निर्दिष्ट करते हुए नर्मल्स उत्पन्न करता है 1. एसएम समूह से आयातित चौरसाई समूहों से नॉर्मल जेनरेट होते हैं। अगर ओबीजे फ़ाइल चौरसाई समूहों को निर्दिष्ट नहीं करती है, या आप ज्यामेट्री च्यूशिंग समूह को बंद करते हैं, तो सभी चेहरों को चौरसाई करने के लिए निर्दिष्ट करके नॉर्मल उत्पन्न करता है 1. ऑटो चिकना चेहरे के बीच के कोण के आधार पर चौरसाई समूह उत्पन्न करता है। मूल्य चौरसाई समूहों को उत्पन्न करने के लिए दहलीज कोण: यदि दो चेहरे के बीच का कोण इस मूल्य से कम है, दोनों को एक ही चौरसाई समूह को सौंपा गया है। अगर कोण इस मूल्य से अधिक है, तो दो चेहरे को चौरसाई समूहों को अलग करने के लिए सौंपा गया है। Default30.0। समेकित सभी चेहरों को समूह 0 को चौरसाई करने के लिए सौंपा गया है: यह है कि कोई चौरसाई नहीं लागू होती है, और आयातित जाल के पास एक मुखर रूप है। फ्लिप नॉर्मल्स सभी आयातित चेहरे की सामान्य रूप से फ़्लिप करती हैं इससे कोई फर्क नहीं पड़ता कि क्या नॉर्मल्स आयात या जनरेट किए जाते हैं। यह विकल्प मुख्य रूप से उपयोग के लिए है जब आप एक मॉडल आयात कर रहे हैं जो बाहर दिखाई देता है यदि आप नॉर्मल फ्लिप न करें ऐसे मॉडल का आमतौर पर परिणाम होता है जब ज्यामिति को माया या 3ds मैक्स के अलावा किसी अन्य अनुप्रयोग द्वारा निर्यात किया जाता है। यूनिट रूपांतरण को चालू करने के लिए चालू करें Defaultoff। मॉडल इकाइयां वें ई मॉडल आयात करते समय उपयोग करने के लिए इकाई का चयन करें अक्सर, आप इसे मूल ओबीजे फ़ाइल में उपयोग किए गए यूनिट पर सेट करेंगे। जब कन्वर्ट बंद हो जाता है, आयात पर ओबीजे फ़ाइल की सामग्री के लिए स्केलिंग निर्धारित करता है। 1.0 का डिफ़ॉल्ट मान है कोई स्केलिंग नहीं किया गया है। अद्वितीय तार रंग सामग्री के बिना एकाधिक वस्तुओं को आयात करते समय सौंपा गया तार फ्रेम रंग निर्धारित करता है। चालू होने पर, प्रत्येक ऑब्जेक्ट को अलग वायरफ़्रेम रंग सौंपा जाता है। बंद होने पर, प्रत्येक ऑब्जेक्ट को वही वायरफ्रेम रंग सौंपा जाता है, जिसे यादृच्छिक रूप से चुना जाता है। जब चालू होता है, तो ओबीजे फ़ाइल से संबंधित एमटीएल फ़ाइल से सामग्री का आयात करता है। डिफ़ॉल्ट। बंद होने पर, इस समूह में शेष नियंत्रण अक्षम होते हैं। प्रत्येक आयातित सामग्री के नाम पर संकेत दिया गया पाठ तैयार करता है प्रीफ़िक्स चेकबॉक्स के दाईं ओर संपादन योग्य पाठ फ़ील्ड में उपसर्ग दर्ज करें। बाँध के मूलभूत आंकड़े यदि मान एमटीएल फ़ाइल में निर्दिष्ट नहीं है। बलपूर्वक काले परिवेश को आयातित सामग्री का परिवेश घटक काला करने के लिए सेट करता है। Mat संपादक में आयात सामग्री संपादक में आयातित सामग्री लाता है अगर यह आयात के समय में बंद है और आप बाद में किसी सामग्री को संपादित करना चाहते हैं, तो आपको पहले सामग्री प्राप्त करने की आवश्यकता है। व्यूपोर्ट में मानचित्र दिखाएं आयातित सामग्री के लिए व्यूपोर्ट में मानचित्र दिखाएं चालू करें डिफ्यूज नक्शे प्रोजेक्ट फ़ोल्डर में मानचित्र कॉपी करें चालू होने पर, OBJ फ़ाइल द्वारा वर्तमान 3ds मैक्स प्रोजेक्ट फ़ोल्डर के scenassetsimages सबफ़ोल्डर के लिए उपयोग किए गए नक्शे की कॉपी की जाती है। Defaultoff। चित्रों को अधिलेखित करते हैं, जब मानचित्र को प्रोजेक्ट फ़ोल्डर चालू है, तो इस विकल्प को चालू करने से ओबीजे फ़ाइल के नक्शे को मौजूदा छवियों को ओवरराइट करने का कारण बनता है, जिनमें डुप्लिकेट नाम हैं। Defaultoff। जब कॉपी मैप चालू है, लेकिन यह विकल्प बंद है, तो 3ds मैक्स किसी भी नक्शे के नाम प्रदर्शित करता है जो प्रतिलिपि नहीं किया। लॉग-इन को आयात-फ़ोल्डर में लिखें ओबीजे फ़ाइल के रूप में एक ही फ़ोल्डर में एक लॉग फाइल को स्क्रिप्ट के माध्यम से आयात करते समय सहेजता है। किसी विशिष्ट एप्लिकेशन से आयात करते समय, उस एप्लिकेशन को ड्रॉप-डाउन सूची से चुनें प्रीसेट में सभी निर्यात सेटिंग्स शामिल हैं, ज्यामिति और सामग्री शामिल हैं एक संवाद खोलने के लिए क्लिक करें जो आपको प्रीसेट को संपादित करने देता है प्रीसेट के लिए मानचित्र पथ को बदलने के लिए, मानचित्र-पथ सेटिंग मैन्युअल रूप से संपादित करें या पंक्ति के दाईं ओर स्थित फ़ोल्डर बटन पर क्लिक करें और नए पथ पर नेविगेट करें। जबकि प्रीसेट संवाद खुले है, आप उसका नाम (पंक्ति हाइलाइट्स) पर क्लिक करके और फिर ओके पर क्लिक करके एक प्रीसेट चुन सकते हैं। शून्य। ampchildclass; बालवाहिनी () और बाल वर्ग () को टेस्ट क्लास में ऊपर वर्णित के रूप में डालकर अब परीक्षण के माध्यम से बाल परीक्षण विकल्प सुलभ हो जाएंगे (फिर से, जैसा कि ऊपर बताए गए अनुसार उचित सेटअप, इसे बनाया जाने के ठीक बाद बालस्टस्ट्रैट पर किया जाना चाहिए)। उपरोक्त उदाहरण से यह स्पष्ट नहीं हो सकता है कि क्यों childnext () और childclassnext () दोनों की आवश्यकता है इस भेद की बात है कि वास्तव में मौजूद ऑब्जेक्ट्स पर बालवाचक () पुनरावृत्त होता है, जबकि चाइल्डक्लसनेक्स्ट () सभी संभव बाल कक्षाओं पर चला जाता है। जैसे अगर कोई AVCodecContext एक कोडेक का उपयोग करने के लिए आरंभीकृत किया गया था, जिसमें निजी विकल्प हैं, तो इसके childnext () AVCodecContext. privdata लौटाएगा और पुनरावृत्त को समाप्त करेगा। एओवीओएएच बालक्लसक्वेस्ट () AVCodecContext. avclass पर निजी विकल्पों के साथ सभी उपलब्ध codecs पर पुनरावृत्त होगा। नामित स्थिरांक विकल्पों के लिए नामित स्थिरांक बनाना संभव है। बस विकल्प के यूनिट क्षेत्र को सेट करें, स्थिरांक को स्ट्रिंग पर लागू करना चाहिए और स्वयं को एक ही स्ट्रिंग पर सेट अपने यूनिट फ़ील्ड के साथ प्रकार AVOPTTYPECONST के विकल्प के रूप में स्थिर बनाना चाहिए। उनके डिफ़ॉल्टवॉल फ़ील्ड में नामित निरंतर का मूल्य होना चाहिए। उदाहरण के लिए, ऊपर दिए गए testflags विकल्प के लिए कुछ नामित स्थिरांक जोड़ने के लिए, निम्नलिखित बालोप्तों सरणी में रखें: offsetof (childstruct, flagsopt), AVOPTTYPEFLAGS , INTMIN, INTMAX, quottestunitquot, AVOptions का उपयोग करना यह खंड AVOptions - सक्षम स्ट्रक्चर में विकल्प तक पहुंचने के साथ काम करता है। एफएफएमपीईजी में ऐसे स्ट्रैक्ट्स उदा। लिविवफोर्म में AVCodecContext libavcodec या AVFormatContext में। अन्वेषण की जांच विकल्पों की जांच के लिए मूल कार्य avoptnext () हैं जो एक ऑब्जेक्ट के लिए परिभाषित सभी विकल्पों पर पुनरावृत्त करता है, और एपटेफ़िंड ()। जो दिए गए नाम के साथ एक विकल्प की खोज करता है। घोंसले के शिकार के साथ स्थिति अधिक जटिल है एक ऐवॉप्शन-सक्षम संरचना में अवशोषण-सक्षम बच्चों हो सकते हैं। AVOPTSEARCHCHILDREN ध्वज avoptfind () को पास करने से फ़ंक्शन को खोज बच्चों को बार-बार मिल जाएगा। गणना करने के लिए मूल रूप से दो मामलों हैं। पहला तब होता है जब आप सभी विकल्पों को प्राप्त करना चाहते हैं जो संभवत: संरचना और उसके बच्चों (जैसे दस्तावेज के निर्माण के दौरान) पर मौजूद हो सकते हैं। उस मामले में आपको एवलक्लाइक्लसनेक्स्ट () को माता-पिता structs AVClass पर पुनरावर्तित करना चाहिए। दूसरा मामला तब होता है जब आपके पास अपने सभी बच्चों के साथ एक पहले से आरंभीकृत संरचना होती है और आप सभी विकल्पों को प्राप्त करना चाहते हैं जो वास्तव में लिखा जा सकता है या इससे पढ़ा जा सकता है। उस मामले में आपको रिक्त रूप से (और प्रत्येक परिणाम पर avoptnext) avoptchildnext () कॉल करना चाहिए। अवतरण पढ़ना और लिखना विकल्प सेट करते समय, आपके पास अक्सर उपयोगकर्ता से सीधे एक स्ट्रिंग पढ़ते हैं। ऐसे मामलों में, बस इसे एवोपसेट () से गुजरना पर्याप्त है गैर-स्ट्रिंग प्रकार विकल्पों के लिए, avoptset () विकल्प प्रकार के अनुसार स्ट्रिंग पार्स करेगा। इसी तरह avoptget () किसी भी विकल्प प्रकार को पढ़ा जाएगा और उसे एक स्ट्रिंग में कनवर्ट कर दिया जाएगा जो वापस किया जाएगा। यह मत भूलो कि स्ट्रिंग को आवंटित किया गया है, इसलिए आपको इसे मुक्त करना होगा ()। कुछ मामलों में यह सभी विकल्पों को एक AVDictionary में डालकर और avoptsetdict () को कॉल करने में अधिक सुविधाजनक हो सकता है इसका एक विशिष्ट मामला है formatcodec lavflavc में खुला फ़ंक्शंस जो एक पैरामीटर के रूप में विकल्प से भरा एक शब्दकोश लेता है। यह कुछ विकल्प सेट करने की अनुमति देता है जिन्हें अन्यथा सेट नहीं किया जा सकता, क्योंकि फ़ाइल को वास्तव में खोलने से पहले इनपुट फ़ाइल प्रारूप ज्ञात नहीं है मैक्रो परिभाषा प्रलेखन सेट करने के लिए मान यदि फ़ील्ड स्ट्रिंग प्रकार का नहीं है, तो दिए गए स्ट्रिंग को पार्स किया जाता है। एसआई पोस्टफिक्सेस और कुछ नामित स्केलर समर्थित हैं। यदि क्षेत्र एक संख्यात्मक प्रकार का है, तो यह एक संख्यात्मक या नामित स्केलर होना चाहिए। एक से अधिक स्केलर के साथ व्यवहार और - इन्फिक्स ऑपरेटर्स अनिर्धारित हैं। यदि फ़ील्ड झंडे प्रकार का है, तो यह संख्यात्मक स्केलर या नाम से चिह्नित झंडे का एक क्रम होना चाहिए - ध्वज को प्रीफ़िक्स करना जिसके कारण इसे अन्य झंडे को प्रभावित किए बिना सेट किया जा सकता है, - एक झंडा दिखाता है यदि गैर - NULL ने यहां AVOption foundC ट्रैक पर एक संकेत दिया है: सी प्रोग्राम संकलित करें यह समझना महत्वपूर्ण है कि कुछ कंप्यूटर भाषाओं (उदाहरण के लिए, योजना या बेसिक) का सामान्य रूप से इंटरैक्टिव दुभाषिया (जहां आप कमांड में तुरंत टाइप करते हैं) के साथ उपयोग किया जाता है, तो सी इस तरह से काम नहीं करता है। सी स्रोत कोड फ़ाइलों को हमेशा एक प्रोग्राम द्वारा बाइनरी कोड में संकलित किया जाता है जिसे कंपाइलर कहा जाता है और फिर निष्पादित किया जाता है। यह वास्तव में एक बहु-कदम प्रक्रिया है जिसे हम यहां कुछ विवरण में वर्णित करते हैं। सी प्रोग्राम तैयार करने वाली विभिन्न प्रकार की फाइलों में आपको चार प्रकार की फाइलों के साथ काम करना होगा: नियमित स्रोत कोड फ़ाइलें इन फ़ाइलों में फ़ंक्शन परिभाषाएं होती हैं, और उन नाम हैं जो कन्वेंशन द्वारा। हैडर फाइलें इन फ़ाइलों में फ़ंक्शन घोषणाएं होती हैं (फ़ंक्शन प्रोटोटाइप के रूप में भी जाना जाता है) और विभिन्न पूर्वप्रोसेसर विवरण (नीचे देखें)। इन्हें स्त्रोत कोड फ़ाइलों को बाहरी रूप से परिभाषित कार्यों तक पहुंचने के लिए उपयोग करने के लिए उपयोग किया जाता है। सम्मेलन से हेडर फाइलें अंत में समाप्त हो जाती हैं I वस्तु फ़ाइलें इन फ़ाइलों को कंपाइलर के आउटपुट के रूप में उत्पादित किया जाता है। ये द्विआधारी रूप में फ़ंक्शन परिभाषाओं से मिलकर काम करते हैं, लेकिन वे स्वयं निष्पादन योग्य नहीं हैं। ऑब्जेक्ट फाइलों को सम्मेलन में समाप्त होता है, हालांकि कुछ ऑपरेटिंग सिस्टम पर (उदाहरण के लिए, विंडोज, एमएस-डॉस), वे अक्सर। बाइनरी निष्पादक ये एक लिंकर नामक एक प्रोग्राम के आउटपुट के रूप में उत्पादित होते हैं लिंकर एक बाइनरी फ़ाइल का उत्पादन करने के लिए अनेक ऑब्जेक्ट फाइलों को एक साथ लिंक करता है, जिसे सीधे निष्पादित किया जा सकता है। बाइनरी एक्जिक्यूटेशंस के पास यूनिक्स ऑपरेटिंग सिस्टम पर कोई विशेष प्रत्यय नहीं है, हालांकि वे आम तौर पर विंडोज में.exe पर समाप्त होते हैं। अन्य प्रकार की फाइलें भी हैं, खासकर लाइब्रेरीज़ (.ए फाइलें) और साझा लाइब्रेरी (.so फाइलें), लेकिन आप आमतौर पर उनके साथ सीधे सौदा करने की आवश्यकता नहीं करते हैं प्रीप्रोसेसर से पहले सी कंपाइलर एक स्रोत कोड फ़ाइल को संकलित करना शुरू करता है, फ़ाइल को एक प्रीप्रोसेसर द्वारा संसाधित किया जाता है। यह वास्तविकता में एक अलग कार्यक्रम है (सामान्यतः सीपीप्रोसेसर के लिए सीपीपी कहा जाता है), लेकिन संकलन से शुरू होने से पहले इसे स्वतः संकलित किया जाता है। क्या प्रीप्रोसेसर स्रोत कोड फ़ाइल को परिवर्तित करता है जिसे आप किसी अन्य स्रोत कोड फाइल में लिखते हैं (आप इसे संशोधित या विस्तारित स्रोत कोड फ़ाइल के रूप में सोच सकते हैं) यह फ़ाइल संशोधित फ़ाइल फ़ाइल सिस्टम में एक वास्तविक फ़ाइल के रूप में मौजूद हो सकती है, या यह केवल संकलक को भेजी जाने से पहले थोड़े समय के लिए स्मृति में संग्रहीत किया जा सकता है। किसी भी तरह, आपको इसके बारे में चिंता करने की ज़रूरत नहीं है, लेकिन आपको यह जानना होगा कि प्रीप्रोसेसर के आदेश क्या करते हैं। प्रीप्रोसेसर कमांड पाउंड साइन () से शुरू होता है कई पूर्वप्रक्रमक दो सबसे महत्वपूर्ण हैं: परिभाषित करें यह मुख्य रूप से स्थिरांक को परिभाषित करने के लिए प्रयोग किया जाता है उदाहरण के लिए, यह निर्दिष्ट करता है कि जहां कहीं भी वर्ण स्ट्रिंग BIGNUM बाकी प्रोग्राम में पाए जाते हैं, उसके लिए 1000000 प्रतिस्थापित किया जाना चाहिए। उदाहरण के लिए, बयान: परिभाषित इस तरह से किया जाता है ताकि किसी स्रोत कोड फ़ाइल के कई अलग-अलग स्थानों में स्पष्ट रूप से कुछ स्थिर मूल्य लिखने से बचें। यह महत्वपूर्ण है अगर परिभाषित करने में आपको एक बार इसे बदलने के लिए कम बग-प्रवण के बाद निरंतर मूल्य को बदलने की आवश्यकता होती है। इसे पूरे कोड में बिखरे हुए कई जगहों में बदलने की आवश्यकता है शामिल । इसका उपयोग स्रोत कोड फ़ाइल के बाहर परिभाषित फ़ंक्शन परिभाषाओं तक पहुंचने के लिए किया जाता है। उदाहरण के लिए: preprocessor को लिटस्टडीआईएचजीटी की सामग्री को स्रोत कोड फ़ाइल में चिपकाने से पहले शामिल होने के पहले स्टेटमेंट के स्थान पर चिपकाने का कारण बनता है। शामिल हैं लगभग हमेशा हेडर फाइलों को शामिल करने के लिए उपयोग किया जाता है, जो ऐसी फ़ाइलें होती हैं जिनमें मुख्य रूप से फ़ंक्शन declarations होते हैं और बयान परिभाषित करते हैं इस मामले में, हम printf और scanf जैसे कार्यों का उपयोग करने में सक्षम होने के लिए उपयोग करते हैं। जिनकी घोषणा फाइल stdio. h में स्थित हैं। सी कंपाइलर आपको किसी फ़ंक्शन का उपयोग करने की अनुमति नहीं देते जब तक कि उस फ़ाइल में पहले से घोषित या परिभाषित नहीं किया गया है, बयान शामिल हैं, इस प्रकार आपके सी कार्यक्रमों में पूर्व-लिखित कोड का पुन: उपयोग करने का तरीका है। कई अन्य पूर्वप्रोसेसर के आदेश भी हैं, लेकिन हम उनसे निपटने के लिए, जैसा कि हमें उनकी ज़रूरत है। ऑब्जेक्ट फ़ाइल बनाना: कम्पाइलर सी प्रीप्रोसेसर के बाद सभी हेडर फाइलों को शामिल किया गया है और सभी को परिभाषित और बयान शामिल किया गया है (साथ ही साथ किसी अन्य प्रीप्रोसेसर कमांड जो मूल फ़ाइल में हो सकते हैं), संकलक प्रोग्राम संकलित कर सकता है। यह सी सोर्स कोड को किसी ऑब्जेक्ट कोड फ़ाइल में बदल कर करता है, जो कि.o में समाप्त होने वाली एक फ़ाइल है जिसमें स्रोत कोड का बाइनरी संस्करण होता है। ऑब्जेक्ट कोड सीधे निष्पादन योग्य नहीं है, यद्यपि। निष्पादन योग्य बनाने के लिए, आपको सभी पुस्तकालय कार्यों के लिए कोड भी जोड़ना होगा जो फ़ाइल में शामिल किए गए थे (यह घोषणाओं को शामिल करने के समान नहीं है, जो कि इसमें शामिल है)। यह लिंकर का काम है (अगले अनुभाग को देखें) सामान्य तौर पर, संकलक को निम्नानुसार लागू किया जाता है: जहां यूनिक्स प्रांप्ट है यह कंपाइलर को फ़ाइल पर पूर्वप्रक्रमक चलाने के लिए कहता है और फिर इसे ऑब्जेक्ट कोड फ़ाइल foo. o में संकलित करता है। - सी विकल्प का अर्थ है स्रोत कोड फ़ाइल को किसी ऑब्जेक्ट फ़ाइल में संकलित करना, लेकिन लिंकर को नहीं खोलना। यदि आपका संपूर्ण कार्यक्रम एक स्रोत कोड फ़ाइल में है, तो आप इसके बजाय ऐसा कर सकते हैं: यह कंपाइलर को foo. c. पर पूर्वप्रक्रमक चलाने के लिए कहता है। इसे संकलित करें और फिर इसे एक निष्पाद्य योग्य बनाने के लिए लिंक करें जिसे foo कहा जाता है। - o विकल्प बताता है कि लाइन पर अगले शब्द बाइनरी निष्पादन योग्य फ़ाइल (प्रोग्राम) का नाम है। यदि आप - ओ निर्दिष्ट नहीं करते हैं यानी यदि आप जीसीसी foo. c. टाइप करें अविश्वसनीय ऐतिहासिक कारणों के लिए एक्जीक्यूटेबल को नामित किया जाएगा। यह भी ध्यान रखें कि हम उपयोग कर रहे कंपाइलर का नाम जीसीसी है। जो जीएनयू सी कंपाइलर या जीएनयू कम्पाइलर संग्रह के लिए खड़ा है, जो आप को सुनते हैं। अन्य सी कंपाइलर मौजूद हैं, उनमें से बहुत से नाम सीसी हैं। सी कंपाइलर के लिए लिनक्स सिस्टम सीसी पर जीसीसी के लिए एक उपनाम है। यह सब एक साथ लाना: लिंकर लिंकर का काम एक साथ ऑब्जेक्ट फाइलों (.ओ फाइलें) को एक द्विआधारी निष्पादन योग्य में जोड़ने का है। इसमें ऑब्जेक्ट फाइलें शामिल हैं, जो कि आपके स्रोत कोड फ़ाइलों से बनाई गई कंपाइलर के साथ-साथ ऑब्जेक्ट फाइलें आपके लिए पूर्व-संकलित की गई हैं और लाइब्रेरी फ़ाइलों में एकत्रित की गई हैं। इन फ़ाइलों के नाम हैं जो अंत में। ए या.so और आप आमतौर पर उनके बारे में जानने की जरूरत नहीं है, क्योंकि लिंकर को पता है कि उनमें से ज्यादातर कहाँ स्थित हैं और उन्हें स्वचालित रूप से आवश्यकतानुसार लिंक करेंगे। प्रीप्रोसेसर की तरह, लिंकर एक अलग प्रोग्राम है जिसे एलडी कहते हैं। पूर्वप्रोसेसर की तरह, जब आप कंपाइलर का उपयोग करते हैं तो लिंकर आपके लिए स्वचालित रूप से उपयोग किया जाता है लिंकर का उपयोग करने का सामान्य तरीका निम्नानुसार है: इस लाइन को कंपाइलर को एक तीन ऑब्जेक्ट फाइलों (foo. o. bar. o. और baz. o) को एक बाइनरी एक्जीक्यूटेबल फ़ाइल में myprog में लिंक करने के लिए कहता है। अब आपके पास माइप्रोग नामक एक फाइल है जिसे आप चला सकते हैं और उम्मीद करेंगे कि कुछ शांत और उपयोगी हो अपने स्वयं के सी कार्यक्रमों को संकलित करने के लिए आपको यह जानने की जरूरत है आम तौर पर, हम यह भी अनुशंसा करते हैं कि आप कमांड-लाइन विकल्प का उपयोग करते हैं: द-वॉल विकल्प कंपाइलर को कानूनी, लेकिन संदिग्ध कोड निर्माण के बारे में चेतावनी देने का कारण बनता है, और बहुत जल्दी बग्स को पकड़ने में आपकी मदद करेगा यदि आप और भी अधिक गुदा (और जो नहीं) चाहते हैं, तो ऐसा करें: - विधिक-प्रोटोटाइप विकल्प का अर्थ है कि संकलक आपको चेतावनी देगा यदि आप अपने सभी कार्यों के लिए सही प्रोटोटाइप लिखा करते थे। - सिन्सी और पुरानी विकल्प के कारण कंपाइलर को किसी भी गैर-पोर्टेबल निर्माण के बारे में चेतावनी दी जाती है (उदाहरण के लिए जो कि जीसीसी में कानूनी हो सकते हैं, लेकिन सभी मानक सी कंपाइलर में ऐसी विशेषताओं से नहीं बचा जाना चाहिए)। संदर्भ केर्नघन और रिची, सी प्रोग्रामिंग भाषा, 2 जी एड जीसीसी के लिए मैन पेज प्रकार: मैन जीसीसी यूनिक्स प्रॉम्प्ट पर जीसीसी के जीएनयू जानकारी दस्तावेज चेतावनी यह अधिक से अधिक जानकारी है क्योंकि ज्यादातर लोग संभवतः औसत सहस्त्राब्दी में अवशोषित कर सकते हैं। जीसीयू के बारे में जानकारी दस्तावेज एमएक्स जानकारी (जहां एमएक्स का मतलब मेटा-कुंजी और एक्स को एक साथ मारने का मतलब है), या सीआई (जहां च का नियंत्रण कुंजी को मारने का मतलब है और मैं एक साथ) लिखकर जीएनयू एमएसीएसी संपादक के माध्यम से पहुंचा जा सकता है mgccltreturngt। जानकारी का उपयोग करने के तरीके के त्वरित दौरे के बजाय मिनटों का प्रकार टाइप करें आप info gcc. objdump टाइप करके यूनिक्स कमांड लाइन से जानकारी प्रलेखन का उपयोग कर सकते हैं एक या अधिक ऑब्जेक्ट फ़ाइलों के बारे में जानकारी प्रदर्शित करता है। विकल्पों को प्रदर्शित करने के लिए कौन सी विशेष जानकारी प्रदर्शित होती है। यह जानकारी ज्यादातर प्रोग्रामर जो कि संकलन उपकरण पर काम कर रहे हैं, के लिए उपयोगी है, जो प्रोग्रामर के विरोध में है, जो सिर्फ अपने प्रोग्राम को संकलित करने और काम करने के लिए चाहते हैं। 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) एएसई निर्देशों को अलग करना। जीपीआर-नाम निर्दिष्ट एबीआई के लिए उपयुक्त के रूप में एबीआई प्रिंट जीपीआर (सामान्य प्रयोजन रजिस्टर) नाम। डिफ़ॉल्ट रूप से, जीपीआर नामों को बाइनरी के एबीआई के अनुसार चुना जाता है। निर्दिष्ट एबीआई के लिए उपयुक्त के रूप में एफएपी-नाम एबीआई प्रिंट एफपीआर (फ्लोटिंग पॉइंट रजिस्टर) नाम। डिफ़ॉल्ट रूप से, एफपीआर नंबर नाम के बजाय मुद्रित होते हैं। cp0- नाम ARCH प्रिंट CP0 (सिस्टम नियंत्रण कॉपोकसेसर कॉरपोरसेसर 0) एआरसीएच द्वारा निर्दिष्ट CPU या आर्किटेक्चर के लिए उचित नाम रजिस्टर करें। डिफ़ॉल्ट रूप से, CP0 पंजीकरण नाम आर्किटेक्चर के अनुसार चुना जाता है और बाइनरी के सीपीयू को अलग करना होता है। एआरसीएच द्वारा निर्दिष्ट सीपीयू या आर्किटेक्चर के लिए उपयुक्त नामों के रूप में एचआरआर-नामों एआरएचएच प्रिंट एचडब्लूआर (हार्डवेयर रजिस्टर, आरडीएचआरएच निर्देश द्वारा उपयोग किया जाता है) डिफ़ॉल्ट रूप से, एचडब्ल्यूआर नाम आर्किटेक्चर और सीपीयू के अनुसार बाइनरी डिस्साम्बल के अनुसार चुना जाता है। रेग-नाम एबीआई प्रिंट जीपीआर और एफपीआर नाम जैसे एबीआई के लिए उपयुक्त है। reg-names ARCH चयनित CPU या आर्किटेक्चर के लिए उपयुक्त के रूप में CPU - विशिष्ट रजिस्टर नाम (CP0 रजिस्टर और एचडब्ल्यूआर नाम) प्रिंट करें। ऊपर सूचीबद्ध किसी भी विकल्प के लिए, एबीआई या एआरच को निर्दिष्ट प्रकार के रजिस्टरों के लिए, नामों के बजाय संख्या मुद्रित करने के लिए संख्यात्मक के रूप में निर्दिष्ट किया जा सकता है। आप --help विकल्प का उपयोग कर एबीआई और एआरच के उपलब्ध मूल्यों की सूची कर सकते हैं। वैक्स के लिए, आप फ़ंक्शन एंट्री पतों को - एम प्रविष्टि के साथ निर्दिष्ट कर सकते हैं: 0xf00ba आप VAX बाइनरी फ़ाइलों को व्यवस्थित करने के लिए इस बार कई बार उपयोग कर सकते हैं, जिसमें प्रतीक तालिकाओं (जैसे रॉम डंप) शामिल नहीं हैं। इन मामलों में, फ़ंक्शन एंट्री मुखौटा अन्यथा वैक्स निर्देशों के रूप में डीकोड हो जाएगा, जो संभवत: शेष फ़ंक्शन गलत ढंग से अलग किए जा रहे हैं। - p - निजी-हेडर प्रिंट जानकारी जो ऑब्जेक्ट फ़ाइल स्वरूप के लिए विशिष्ट है। मुद्रित सही जानकारी ऑब्जेक्ट फ़ाइल स्वरूप पर निर्भर करती है। कुछ ऑब्जेक्ट फ़ाइल स्वरूपों के लिए, कोई अतिरिक्त जानकारी मुद्रित नहीं है। - P विकल्प - निजी विकल्प ऑब्जेक्ट फ़ाइल स्वरूप के लिए विशिष्ट जानकारी प्रिंट करें 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.

No comments:

Post a Comment