2011-04-06 12 views
11

मैं यह निर्धारित करने की कोशिश कर रहा हूं कि डिबग प्रतीकों के साथ रिलीज बाइनरी बनाने के लिए कोई डाउनसाइड्स हैं या नहीं। हमारी रिलीज के निर्माण के लिए, हम इस समय -O3 के साथ संकलित करते हैं और यदि कोई क्रैश हो, तो कोर बेकार के बगल में हैं।क्या रिलीज बिल्ड में डीबग प्रतीकों में जाने का कोई नकारात्मक पक्ष है?

तो, मैं करना चाहते हैं क्या डिबग प्रतीकों में छोड़ने के लिए निर्माण, यानी -O3 -g संशोधित है, लेकिन यह करने के लिए प्रतिरोध है के रूप में लग रहा है (बाइनरी के आकार को छोड़ कर) है कुछ प्रभाव हो सकता है कि । मुझे पता है कि प्रतीकों को अलग करके आकार का मुद्दा तय किया जा सकता है, लेकिन क्या कुछ और सूक्ष्म है जिसे मैं याद कर रहा हूं?

+0

क्या यह एक वाणिज्यिक अनुप्रयोग है? क्या आप रिवर्स इंजीनियरिंग के बारे में चिंतित हैं? – EboMike

+0

@EboMike, नहीं, यह हमारे सेटअप में एक लागू चिंता नहीं है। – Nim

उत्तर

22

बाइनरी से अलग प्रतीकों।

g++ -ggdb -o target obj1.o obj2.o ... 
strip target --only-keep-debug -o target.dbg 
strip target 

फिर gdb में, का उपयोग symbol-file target.dbg

संपादित करें: वास्तविक सवाल पर:

कमियां हैं:

  • आसान रिवर्स इंजीनियरिंग (कि यदि आप चिंता)
  • बड़ी बाइनरी

निष्पादन की गति प्रभावित नहीं होती है - डीबग प्रतीकों को बस एक अलग सेक्शन में बाइनरी में जोड़ा जाता है, वे आपके वर्चुअल एड्रेस स्पेस साइज को प्रभावित कर सकते हैं लेकिन कुछ भी नहीं।

+1

वाह, अच्छा, मुझे नहीं पता था कि यह संभव था! – speeder

+0

धन्यवाद, मैं जानता हूँ कि यह संभव है, प्रश्न अधिक था वहाँ पहली जगह में उन लोगों के साथ बनाता है अनुकूलित निर्माण के साथ किसी भी मुद्दे हैं (यानी अलग करना कदम पूर्व) कर रहे हैं। – Nim

+0

अद्यतन के लिए धन्यवाद। मुझे लगता है मुझे इसे आज़माकर देखना होगा कि क्या होता है .. – Nim

0

यह आकार को प्रभावित करता है, और इस प्रकार कैशिंग और स्मृति भी प्रभावित करता है।

यदि आप कंपाइलर विकल्पों के बारे में जानकारी पढ़ते हैं, तो आप देखेंगे कि यह कहता है कि कभी-कभी अनलॉकिंग लूप उदाहरण के लिए कोड को धीमा कर देते हैं क्योंकि बढ़ते आकार को तोड़ने और अधिक मेमोरी लाने के कारण कोड धीमा हो जाता है।

+0

तो, क्या दूसरे चरण के ऑपरेशन के रूप में प्रतीकों को अलग करना कैश प्रभाव को कम करता है? – Nim

+0

आप एरिक विचार को रेफर कर रहे हैं? मुझे लगता है कि हाँ। – speeder