Seer - ส่วนหน้า gui ของ gdb สำหรับ Linux (เออร์นี่ ปาสเวียร์ [email protected])
โครงการนี้มีการทำงานอย่างแข็งขัน จุดมุ่งหมายคือ gui ที่เรียบง่ายแต่น่าพึงพอใจสำหรับ gdb
โปรดรายงานข้อบกพร่องหรือคุณสมบัติที่ต้องการไปยังอีเมลของฉันหรือสร้างงานในหน้าโครงการ GitHub ของฉัน
Seer สามารถติดตั้งได้จากตัวจัดการแพ็คเกจหรือจากแหล่งที่มา
บันทึก
ตรวจสอบให้แน่ใจว่าเป็นไปตามข้อกำหนดก่อนการติดตั้ง
ลินุกซ์
ค++17
gdb พร้อมล่าม "mi" (ตรวจสอบโดยการรัน: gdb --interpreter=mi
)
CMake (3.1.0 หรือใหม่กว่า)
คิวที6
คิวที5
มีให้ผ่านผู้จัดการแพ็คเกจต่อไปนี้:
pamac install seer
zypper install seergdb
(แนะนำ) Seer สามารถสร้างด้วย Qt6 ได้โดยทำตามคำแนะนำด้านล่าง
https://github.com/epasveer/seer/wiki/Building-Seer---Qt6
ยังคงสามารถสร้างด้วย Qt5 ได้ในขณะนี้โดยทำตามคำแนะนำด้านล่าง
https://github.com/epasveer/seer/wiki/Building-Seer---Qt5
ตรวจสอบหน้า Wiki ของผู้ทำนายบน github
ตัวอย่างมุมมองและบทสนทนาของผู้หยั่งรู้ต่างๆ
มุมมองหลักของ Seer มีลักษณะดังนี้:
แหล่งที่มา/ฟังก์ชัน/ประเภท/ตัวแปร/ไลบรารี
ข้อมูลตัวแปร/การลงทะเบียน
ผู้จัดการรหัส
เบรกพอยต์, Watchpoints, Catchpoints, Printpoints, คำสั่ง gdb แบบแมนนวล และบันทึก
ข้อมูลเฟรมสแต็ก
ข้อมูลกระทู้
รองรับโหมด Reverse Debugging ของ Gdb
เมื่อมีการเรียกใช้กล่องโต้ตอบปฏิบัติการแบบเปิด ดูเหมือนว่านี้:
เอาต์พุตข้อความทั้งหมดจากไฟล์ปฏิบัติการจะไปที่คอนโซล Seer การป้อนข้อความสำหรับปฏิบัติการสามารถป้อนผ่านคอนโซลได้เช่นกัน
โดยปกติ Seer จะแสดงซอร์สโค้ดเป็นแท็บในตัวจัดการโค้ด แอสเซมบลีของโปรแกรมสามารถแสดงเป็นแท็บได้
เลือก "ดู->มุมมองแอสเซมบลี" และแท็บพิเศษจะแสดงข้างแท็บซอร์สโค้ดที่แสดงแอสเซมบลีปัจจุบันที่กำลังดำเนินการ นี่คือตัวอย่าง
เช่นเดียวกับแท็บซอร์สโค้ด คุณสามารถตั้งค่าเบรกพอยต์ในแท็บแอสเซมบลีได้ คำสั่งปัจจุบันจะถูกเน้นไว้
การดับเบิลคลิกที่รายการในแท็บ "เบรกพอยต์" และแท็บ "เฟรมสแต็ก" จะแสดงแอสเซมบลีสำหรับที่อยู่เหล่านั้น
มีปุ่มลัด "Nexti" และ "Stepi" ตามที่กำหนดโดยการตั้งค่าของคุณ โดยปกติจะเป็น "Ctrl+F5" และ "CTRL+F6" การใช้ "^F" ในแท็บชุดประกอบจะแสดงแถบค้นหาที่มีประสิทธิภาพ
คุณลักษณะการประกอบใน Seer เป็นคุณลักษณะใหม่ รู้สึกอิสระที่จะแนะนำการเปลี่ยนแปลง / คุณสมบัติ
เมื่อดูเนื้อหาของหน่วยความจำดิบใน Memory Visualizer จะมีลักษณะดังนี้:
หน่วยความจำ | การถอดชิ้นส่วน |
---|---|
เมื่อดูเนื้อหาของอาร์เรย์ใน Array Visualizer จะมีลักษณะดังนี้:
ปกติ | เส้นโค้ง | กระจาย |
---|---|---|
อาร์เรย์สองตัวสามารถใช้เป็นพล็อต XY ได้ ตัวอย่างเช่น อาร์เรย์ 'จุด' แบบธรรมดานี้จะสร้างโครงร่าง XY ของรูปร่าง
int main() {
int points[] = {50,1,20,91,97,35,2,35,79,91,50,1};
return 0;
}
ค่าเอ็กซ์ | ค่า Y | ค่า XY |
---|---|---|
เมื่อดูเนื้อหาของโครงสร้าง C/C++ หรือคลาส C++ ใน Struct Visualizer จะมีลักษณะดังนี้ ตัวอย่างนี้แสดงเนื้อหาของ "*this" สำหรับคลาส C++ ปัจจุบันที่มี Seer อยู่ สมาชิกโครงสร้างทั้งหมดที่เป็นประเภทพื้นฐานสามารถแก้ไขได้
นอกจากนี้ยังมี Basic Struct Visualizer ที่มีน้ำหนักเบากว่าแต่ไม่สามารถตามพอยน์เตอร์ได้และไม่สามารถแก้ไขได้
เมื่อดูเนื้อหาของหน่วยความจำดิบที่เป็นรูปภาพ สามารถใช้ Image Visualizer ได้
Seer มีไว้เพื่อให้เริ่มโปรแกรมเพื่อตรวจแก้จุดบกพร่องจากบรรทัดคำสั่งได้อย่างง่ายดาย gdb มีหลายวิธีในการดีบักโปรแกรม ดังนั้นผู้หยั่งรู้ก็ทำเช่นกัน
ไปที่ Wiki เพื่อดูวิธีเรียกใช้ Seer ทั้งหมด
https://github.com/epasveer/seer/wiki/Starting-Seer
ส่งอีเมลไปที่ [email protected] สำหรับข้อบกพร่องหรือคุณสมบัติใด ๆ หรือสร้างงานในหน้าโครงการ GitHub ของฉัน