से सामग्री को डंप करने का प्रयास करें, मुझे वास्तव में यह नहीं पता कि यह मदद कर सकता है, लेकिन O0 की जांच करना disassembly (objdump -d) में काफी आसान है, क्योंकि जेनरेट कोड में कोई अनुकूलन नहीं है और डीबगिंग को सरल बनाने के लिए कुछ निर्देशों को जोड़ता है।
आमतौर पर एक x86 पर, फ़ंक्शन के प्रस्तावना में स्टैक पॉइंटर को सहेजना शामिल है (बैकट्रैस के लिए, मुझे लगता है)।
... मुख्य: तो अगर आप का पता लगाने, उदाहरण के लिए, मुख्य कार्य, आप की तरह कुछ देखना चाहिए ... धक्का% RBP ... mov% आरएसपी,% RBP
और तुम कार्यों की लगभग हर शुरुआत में यह "पैटर्न" देखना चाहिए। अन्य लक्ष्यों के लिए (मुझे पता नहीं है कि आपका लक्ष्य प्लेटफ़ॉर्म क्या है), आपको प्रस्तावों में या फ़ंक्शन कॉल से पहले कम या समान असेंबली अनुक्रम देखना चाहिए।
अन्य अनुकूलन स्तरों के लिए, चीजें ट्रिकियर के रास्ते हैं।
अस्पष्ट शेष के लिए खेद है और पूरे प्रश्न का उत्तर नहीं दे रहा है ... बस उम्मीद है कि इससे मदद मिलेगी।
यह प्रश्न मदद कर सकता है: http://stackoverflow.com/questions/189350/detect-gcc-compile-time-flags-of-a-binary – Nick
मुझे इस तरह के अनुरोध के कारण में बहुत दिलचस्पी होगी। विशेष रूप से, आपको पता होना चाहिए कि अनुकूलन को व्यक्तिगत आधार पर चालू और बंद किया जा सकता है, और 'ओ' स्तर सुविधा के लिए केवल समूह हैं। –
विशेष रूप से [इस जानकारीपूर्ण उत्तर] (http://stackoverflow.com/a/340828/15416) उस प्रश्न पर देखें। यह निर्णायक सबूत है कि आप इसे विश्वसनीय रूप से नहीं कर सकते हैं। – MSalters