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

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

11
Nim 6 अप्रैल 2011, 20:12
क्या यह एक व्यावसायिक अनुप्रयोग है? क्या आप रिवर्स इंजीनियरिंग से परेशान हैं?
 – 
EboMike
6 अप्रैल 2011, 20:14
@EboMike, नहीं, यह हमारे सेटअप में लागू होने वाली चिंता नहीं है।
 – 
Nim
6 अप्रैल 2011, 20:26

2 जवाब

सबसे बढ़िया उत्तर

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

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

फिर जीडीबी में, symbol-file target.dbg का प्रयोग करें

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

नकारात्मक पक्ष हैं:

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

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

24
Erik 6 अप्रैल 2011, 20:29
1
वाह, अच्छा, मुझे नहीं पता था कि यह संभव था!
 – 
speeder
6 अप्रैल 2011, 20:17
धन्यवाद, मुझे पता है कि यह संभव है, सवाल यह था कि उनके साथ अनुकूलित निर्माण के निर्माण के साथ कोई समस्या है (यानी स्ट्रिपिंग चरण से पहले)।
 – 
Nim
6 अप्रैल 2011, 20:27

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

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

0
speeder 6 अप्रैल 2011, 20:15
तो, क्या दूसरे चरण के ऑपरेशन के रूप में प्रतीकों को अलग करना कैश प्रभाव को कम करता है?
 – 
Nim
6 अप्रैल 2011, 20:27
आप एरिक विचार का जिक्र कर रहे हैं? मुझे लगता है कि हाँ।
 – 
speeder
6 अप्रैल 2011, 20:30