-
บทนำ
- Seer เป็น GUI ฟรอนต์เอนด์สำหรับ
gdb บน Linux โดยมีเป้าหมายเพื่อมอบอินเทอร์เฟซที่ใช้งานง่ายและสวยงามน่าพอใจ
- โปรเจ็กต์ยังคงพัฒนาอย่างต่อเนื่อง และสามารถรายงานบั๊กหรือฟีเจอร์ที่ต้องการได้ทางอีเมลหรือผ่านหน้าโปรเจ็กต์บน GitHub
-
การติดตั้ง
- สามารถติดตั้ง Seer ได้ผ่านตัวจัดการแพ็กเกจหรือจากซอร์ส
-
ข้อกำหนด
- ต้องใช้ Linux, C++17,
gdb (รวม mi interpreter), CMake (3.1.0 ขึ้นไป) และ QT6
- ต้องติดตั้งแพ็กเกจ QT6 "devel"
- QT5 ไม่ได้รับการสนับสนุนอีกต่อไป และเวอร์ชัน 2.3 คือ source tree เวอร์ชันสุดท้ายที่รองรับ
-
ติดตั้งจากแพ็กเกจ
- ติดตั้งได้ผ่าน Pamac (Manjaro) และ zypper (openSUSE Tumbleweed)
-
ข่าวสาร
- สามารถดูข้อมูลล่าสุดได้ที่หน้า GitHub Wiki ของ Seer
- v1.17 เป็นรีลีสสุดท้ายของ Qt5 และรีลีสถัดไปจะเป็น v2.0 ที่พัฒนาบน Qt6
-
ภาพรวม GUI
-
มุมมองหลัก
- แสดงรายการซอร์ส/ฟังก์ชัน/ชนิดข้อมูล/ตัวแปร/ไลบรารี
- แสดงข้อมูลตัวแปรและรีจิสเตอร์
- สามารถเปิดดูและค้นหาไฟล์ซอร์สได้ใน code manager
- จัดการ breakpoint, watchpoint, catchpoint และ printpoint ได้
- แสดงข้อมูล stack frame และ thread
- รองรับโหมด reverse debugging ของ Gdb
-
กล่องโต้ตอบเปิดไฟล์
- อธิบายหน้าตาของกล่องโต้ตอบเมื่อเปิดไฟล์ปฏิบัติการ
-
Seer Console
- ข้อความเอาต์พุตทั้งหมดของไฟล์ปฏิบัติการจะถูกส่งไปยัง Seer console
-
มุมมองแอสเซมบลี
- สามารถแสดงโค้ดแอสเซมบลีเป็นแท็บได้
- เป็นฟีเจอร์ใหม่ และสามารถส่งข้อเสนอแนะหรือฟีเจอร์ที่อยากได้เพิ่มเติมได้
-
Memory Visualizer
- แสดงผลเนื้อหาหน่วยความจำดิบในรูปแบบภาพ
-
Array Visualizer
- แสดงผลเนื้อหาอาร์เรย์เป็นกราฟ X-Y
-
Struct Visualizer
- แสดงผลเนื้อหาของ struct หรือ class ใน C/C++
-
Image Visualizer
- แสดงผลเนื้อหาหน่วยความจำดิบในรูปแบบภาพ
-
การเริ่มใช้งาน Seer
- ออกแบบมาเพื่อให้เริ่มโปรแกรมที่จะดีบักจากบรรทัดคำสั่งได้อย่างง่ายดาย
- สามารถดูวิธีการรันแบบต่าง ๆ ได้ที่ GitHub Wiki
-
การสนับสนุน/ติดต่อ
- สามารถแจ้งบั๊กหรือขอฟีเจอร์ได้ทางอีเมลหรือผ่านหน้าโปรเจ็กต์บน GitHub
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
จากที่ลองใช้กับ Godot และบน Linux, UI ค่อนข้างซับซ้อนแต่มีฟีเจอร์ครบ เมื่อพยายามตรวจสอบค่าตัวแปรจะเกิดข้อผิดพลาดหรือไม่ก็ไม่มีอะไรเกิดขึ้น การดับเบิลคลิกตัวแปรจะเพิ่มค่าปัจจุบันและการประทับเวลาเข้าไปในพาเนล Gede มี UI ที่เรียบง่ายและตรงไปตรงมาที่สุด แม้ฟีเจอร์จะน้อยกว่าแต่ทำงานได้ดีโดยไม่มีบั๊ก
GDB มี text user interface (TUI) ในตัว และใช้งานง่าย อีกทั้งยังรองรับการโต้ตอบด้วยเมาส์
หลังจากลองใช้ GDB frontend มาหลายตัวแล้ว พบว่า TUI ดีที่สุด แต่อินเทอร์เฟซอาจเพี้ยนได้เมื่อโปรแกรมมีเอาต์พุต จึงต้องกด Ctrl + L เพื่อวาดใหม่ มีการเพิ่ม
layout srcและset confirm offลงในไฟล์ตั้งค่าหากเชื่อมต่อจาก Windows ไปยัง Linux หรือใช้ WSL ก็สามารถใช้ WinDBG/VisualStudio เพื่อ remote debug โปรเซสบน Linux ได้
มีทั้ง Qt UI for GDB และ gdbgui ซึ่งเป็น UI แบบเว็บ การได้เห็นเครื่องมือดีบักพัฒนาไปเรื่อย ๆ เป็นเรื่องที่ดีเสมอ
ตอนเห็น DDD ครั้งแรกมันเหมือนเวทมนตร์เลย และทุกวันนี้ก็ยังมีการดูแลรักษาอยู่
สำหรับผู้ใช้ Emacs, GUD มีความสามารถในการผสานรวมกับ GDB ที่ยอดเยี่ยม
บางครั้งใช้ GDB เพื่อตรวจสอบบั๊กของ C หรือ Ada แต่ไม่ใช่งานหลัก จึงไม่ค่อยลงทุนเวลาไปกับการตั้งค่าสภาพแวดล้อมดีบักที่ซับซ้อน ใช้ Emacs กับบันทึกคำแนะนำสั้น ๆ ก็พอ
เมื่อ 10 ปีก่อนตอนเขียนโปรแกรม C++ บน Linux เคยใช้ Qt Creator และดีบักเกอร์ในตัว (GDB frontend) ทำงานได้ยอดเยี่ยม สำหรับ C++ และ Qt ก็ไม่มีเหตุผลที่จะต้องใช้อย่างอื่น