tl; dr: अपने विशिष्ट प्रश्न का उत्तर देने के लिए, -g3
"अतिरिक्त जानकारी जैसे मैक्रो परिभाषाएँ शामिल हैं ... कुछ डीबगर मैक्रो विस्तार का समर्थन करते हैं जब आप उपयोग करते हैं -g3
", जबकि -g
यह अतिरिक्त जानकारी शामिल नहीं करता है।
व्यापक उत्तर यह है कि gcc डिबग सूचना के चार स्तरों का समर्थन करता है, -g0
(डीबग सूचना अक्षम) के माध्यम से -g3
(अधिकतम डिबग सूचना)।
निर्दिष्ट करने -g
के बराबर है -g2
। उत्सुकता से, जीसीसी डॉक्स बहुत कम जानकारी के बारे में कहते हैं -g
/ -g2
जिसमें शामिल हैं या शामिल नहीं हैं:
डिबगिंग जानकारी का अनुरोध करें और यह भी बताएं कि कितनी जानकारी निर्दिष्ट करने के लिए स्तर का उपयोग करें। डिफ़ॉल्ट स्तर 2 है। स्तर 0 डिबग सूचना का उत्पादन बिल्कुल नहीं करता है। इस प्रकार, -g0 नेगेट -g।
स्तर 1 न्यूनतम जानकारी पैदा करता है, कार्यक्रम के उन हिस्सों में बैकट्रैक बनाने के लिए पर्याप्त है जिन्हें आप डीबग करने की योजना नहीं बनाते हैं। इसमें फ़ंक्शन और बाहरी चर और लाइन नंबर तालिकाओं का वर्णन शामिल है, लेकिन स्थानीय चर के बारे में कोई जानकारी नहीं है।
स्तर 3 में अतिरिक्त जानकारी शामिल है, जैसे कि कार्यक्रम में मौजूद सभी मैक्रो परिभाषाएँ। जब आप -g3 का उपयोग करते हैं तो कुछ डीबगर मैक्रो विस्तार का समर्थन करते हैं।