3 คะแนน โดย GN⁺ 2024-11-16 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • บทนำ

    • 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 ความคิดเห็น

 
GN⁺ 2024-11-16
ความคิดเห็นจาก 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 ก็ไม่มีเหตุผลที่จะต้องใช้อย่างอื่น