GDB - การดีบักสัญลักษณ์
ก Debugging Symbol Tableแมปคำแนะนำในโปรแกรมไบนารีที่คอมไพล์กับตัวแปรฟังก์ชันหรือบรรทัดที่เกี่ยวข้องในซอร์สโค้ด การทำแผนที่นี้อาจเป็นดังนี้:
คำสั่งโปรแกรม⇒ชื่อรายการประเภทรายการไฟล์ต้นฉบับหมายเลขบรรทัดที่กำหนด
ตารางสัญลักษณ์อาจถูกฝังลงในโปรแกรมหรือจัดเก็บเป็นไฟล์แยกต่างหาก ดังนั้นหากคุณวางแผนที่จะดีบักโปรแกรมของคุณคุณจะต้องสร้างตารางสัญลักษณ์ซึ่งจะมีข้อมูลที่จำเป็นในการดีบักโปรแกรม
เราสามารถสรุปข้อเท็จจริงเกี่ยวกับตารางสัญลักษณ์ต่อไปนี้:
ตารางสัญลักษณ์ใช้งานได้กับโปรแกรมเวอร์ชันใดเวอร์ชันหนึ่ง - หากโปรแกรมเปลี่ยนแปลงต้องสร้างตารางใหม่
การสร้างดีบักมักมีขนาดใหญ่และช้ากว่าการสร้างแบบขายปลีก (ไม่ใช่การแก้ปัญหา) การสร้างการแก้ปัญหาประกอบด้วยตารางสัญลักษณ์และข้อมูลเสริมอื่น ๆ
หากคุณต้องการดีบักโปรแกรมไบนารีที่คุณไม่ได้คอมไพล์เองคุณต้องได้รับตารางสัญลักษณ์จากผู้เขียน
เพื่อให้ GDB สามารถอ่านข้อมูลทั้งหมดทีละบรรทัดจากตารางสัญลักษณ์เราจำเป็นต้องรวบรวมข้อมูลให้แตกต่างกันเล็กน้อย โดยปกติเรารวบรวมโปรแกรมของเราเป็น:
gcc hello.cc -o hello
แทนที่จะทำสิ่งนี้เราต้องคอมไพล์ด้วยแฟล็ก -g ดังที่แสดงด้านล่าง:
gcc -g hello.cc -o hello