tl; dr:เพื่อตอบคำถามเฉพาะของคุณ-g3
"รวมข้อมูลเพิ่มเติมเช่นคำจำกัดความของมาโคร ... ตัวแก้ไขข้อบกพร่องบางตัวสนับสนุนการขยายมาโครเมื่อคุณใช้-g3
" ในขณะที่-g
ไม่รวมข้อมูลเพิ่มเติมนี้
คำตอบที่กว้างขึ้นคือ gcc รองรับข้อมูลการดีบักสี่ระดับตั้งแต่-g0
(ข้อมูลการดีบักถูกปิดใช้งาน) ถึง-g3
(ข้อมูลการดีบักสูงสุด)
ระบุเทียบเท่ากับ-g
-g2
น่าแปลกใจที่เอกสาร gccพูดเพียงเล็กน้อยเกี่ยวกับข้อมูล-g
/ -g2
รวมหรือไม่รวม:
ขอข้อมูลการดีบักและใช้ระดับเพื่อระบุจำนวนข้อมูล ระดับเริ่มต้นคือ 2 ระดับ 0 ไม่มีข้อมูลการดีบักเลย ดังนั้น -g0 จึงลบ -g
ระดับ 1 ให้ข้อมูลน้อยที่สุดเพียงพอสำหรับการสร้าง backtraces ในส่วนของโปรแกรมที่คุณไม่ได้วางแผนที่จะแก้ไขข้อบกพร่อง ซึ่งรวมถึงคำอธิบายของฟังก์ชันและตัวแปรภายนอกและตารางหมายเลขบรรทัด แต่ไม่มีข้อมูลเกี่ยวกับตัวแปรโลคัล
ระดับ 3 ประกอบด้วยข้อมูลเพิ่มเติมเช่นข้อกำหนดมาโครทั้งหมดที่มีอยู่ในโปรแกรม ดีบักเกอร์บางตัวรองรับการขยายมาโครเมื่อคุณใช้ -g3