सी ++ मानक द्वारा आवश्यक विभिन्न चीजें हैं जिनकी आपको संभावना होगी।
सबसे महत्वपूर्ण बात यह है कि वहाँ कोड है कि मुख्य से पहले मुख्य अनुवाद इकाई में किसी भी स्टैटिक्स के निर्माण संभालती है कहा जाता है, और एक समारोह है कि मुख्य पत्तियों के बाद कि उनके विनाश हैंडल करने की जरूरत है। इसके अतिरिक्त, मानक को atexit
फ़ंक्शन की आवश्यकता होती है जो आपको मुख्य रिटर्न के बाद कॉल करने के लिए अतिरिक्त फ़ंक्शंस पंजीकृत करने की अनुमति देती है।
तो कम से कम, स्टार्टअप कोड को उन कार्यों की डेटा संरचना बनाने में सक्षम होना चाहिए जिन्हें मुख्य से वापसी पर बुलाया जाएगा। यह एक गतिशील डेटा संरचना है क्योंकि इसे प्रोग्राम द्वारा रनटाइम में जोड़ा जाना आवश्यक है, और कॉल का क्रम पंजीकरण करने के विपरीत है (इसलिए आमतौर पर आप एक डेटा संरचना चाहते हैं जो उस स्थान पर आसानी से चलती है)।
लेकिन इसके अतिरिक्त, मानक की आवश्यकता है कि अन्य अनुवाद इकाइयों में स्थिरता उस अनुवाद इकाई में किसी भी फ़ंक्शन को निष्पादित करने से पहले बनाई गई हो। अक्सर, कंपाइलर्स बस लिंकर में सबकुछ व्यवस्थित करेंगे ताकि सभी को मुख्य से पहले बुलाया जा सके, लेकिन इसकी आवश्यकता नहीं है। वे कंपाइलर्स जो चीजों को अलग-अलग करते हैं, फिर उन्हें अन्य अनुवाद इकाई कोड में प्रारंभिक दिनचर्या के लिए थंक्स प्रदान करने की आवश्यकता होती है जिसे पहले फ़ंक्शन कॉल पर कॉल किया जाएगा। अगर आप किसी भी मानक पुस्तकालय का उपयोग
बस यह काफी काम का एक सा है। याद रखें, std :: अदालत एक स्थिर वस्तु (स्थिर जीवन, नहीं स्थिर संबंध - भ्रमित करने वाले अतिभारित शब्द चेतावनी) है। ताकि अपने कंसोल बाहर करने के लिए संचार का निर्माण है, जो जो कुछ भी कहा जाता है अपने मंच की जरूरत एपीआई होगा का मतलब है। मानक में ऐसी कई वस्तुएं हैं।
और फिर, आपके प्लेटफ़ॉर्म और/या कंपाइलर के लिए विशिष्ट सामग्री हो सकती है जो प्रक्रिया को कुछ उपयोगी तरीके से तैयार करती है, या पर्यावरण चरों को पार्स करती है, या "मानक" गतिशील/साझा पुस्तकालयों या समान सामान लोड करती है।
आमतौर पर, बाहर निकलने वाली सूची केवल उस सूची को चल रही है और किसी भी तरह से पर्यावरण के लिए मुख्य रूप से वापसी मूल्य प्रदान करती है, क्योंकि अधिकांश आधुनिक ओएस स्वयं के बाद साफ हो जाते हैं, लेकिन इसके अलावा सिस्टम विशिष्ट सामग्री भी हो सकती है।
बहुत संकलक और मंच विशिष्ट। मुझे संदेह है कि आपको वह सटीक उत्तर मिलेगा जो आप चाहते हैं। – Matt
मैं [इस पोस्ट] की सिफारिश करता हूं (http://stackoverflow.com/a/9952374/176769) किसी भी रिवर्स-इंजीनियर-गुरु-वानबे व्यक्ति के लिए रोडमैप के रूप में। – karlphillip
मुझे रिवर्स इंजीनियरिंग में कोई अनुभव नहीं है, लेकिन क्या आप सापेक्ष पते प्राप्त करने के लिए मुख्य रूप से मुख्य शुरुआत में डीबगर ब्रेक पॉइंट सेट नहीं कर सकते? या, वैकल्पिक रूप से, निष्पादन योग्य के ऑब्जेक्ट डंप में मुख्य रूप से देखें? – bjhend