2009-08-27 9 views
7

मैं सोच रहा था कि -फनो-ओमिट-फ्रेम-पॉइंटर ऑप्टिमाइज़ेशन के बिना क्या करेगा?-fno-omit-frame-pointer अनुकूलन के बिना

CXXFLAGS = -Wall -ggdb3 -DDEBUG -fno-न आना-फ्रेम सूचक

यह है कि fomit फ्रेम-सूचक ऑटो -O के सभी स्तरों पर चालू नहीं है (छोड़कर - O0)? मैं अपने उदाहरण में मानता हूं कि यह डिफ़ॉल्ट रूप से -O0 है।

धन्यवाद और सम्मान!

+0

x86 और परिवार पर, '-फॉमिट-फ्रेम-पॉइंटर' ** ** ** अनुकूलन स्तरों के लिए डिफ़ॉल्ट रूप से सक्षम नहीं है ** क्योंकि यह डिबगिंग में बाधा डाल सकता है। –

+2

ध्यान दें कि x86-64 और arm जैसे आर्किटेक्चर पर, डिफ़ॉल्ट रूप से जेनरेट नहीं किया गया कोई फ्रेम पॉइंटर नहीं है (यह एबीआई में निर्दिष्ट है), इसलिए यह विकल्प संकलक को फ्रेम सूचक रजिस्टर बनाने का कारण बनता है। –

उत्तर

6

जैसा कि आप पहले से ही खुद को सूचित करते हैं, -fno-omit-frame-pointer को आपके मामले में केवल अनदेखा किया गया है, क्योंकि फ़्रेम पॉइंटर डिफ़ॉल्ट-ओ 0 में किसी भी तरह से नहीं छोड़ा जाएगा।

2

जैसा कि मैं समझता हूं कि ऑक्स ऑप्टिमाइज़ेशन झंडे के सेट के लिए शॉर्टकट हैं। डिफ़ॉल्ट अनुकूलन शून्य है, इसलिए ऑक्स के बिना एक ध्वज का उपयोग करके, केवल उस अनुकूलन को करना चाहिए।

मेरी राय में, फ्रेम पॉइंटर को छोड़कर मामूली प्रदर्शन लाभ के लिए डीबगिंग कठिनाई बढ़ जाती है।

+0

* "मेरी राय में, फ्रेम सूचक को छोड़कर ..." * - यह ढेर निशान लगभग बेकार बनाता है। 'बीटी पूर्ण 'अपंग हो जाएगा। – jww

संबंधित मुद्दे