GDBFrontend เป็นดีบักเกอร์ gui ที่ใช้งานง่าย ยืดหยุ่น และขยายได้ ลองออนไลน์!
คุณสามารถติดตั้ง GDBFrontend ด้วย pip
sudo python3 -m pip install gdbfrontend
หากมีการติดตั้งไว้แล้วและคุณกำลังอัปเกรด
sudo python3 -m pip install --upgrade gdbfrontend
หรือหากคุณต้องการติดตั้งสแน็ปช็อต GIT เฉพาะ:
sudo python3 setup.py install
และคุณสามารถวิ่งได้
gdbfrontend
คุณสามารถดาวน์โหลดแหล่งล่าสุดและเรียกใช้ได้
คุณสามารถรัน gdb-frontend ด้วยคำสั่งต่อไปนี้:
git clone https://github.com/rohanrhu/gdb-frontend.git gdb-frontend
cd gdb-frontend
./gdbfrontend
และคุณสามารถเปิดมันด้วย:
http://127.0.0.1:5550/
คุณสามารถเปิดเชลล์ GDB ด้วยคำสั่ง:
tmux a -t gdb-frontend
คุณสามารถติดตั้งแพ็คเกจ Arch Linux สำหรับการแจกแจงแบบอิง Arch (แพ็คเกจ AUR)
yay -S gdb-frontend-bin
และคุณสามารถเรียกใช้ได้:
gdbfrontend
แพ็คเกจ Flatpak เป็นสิ่งที่ต้องทำ
ทำตามบทช่วยสอนนี้เพื่อเรียนรู้วิธีดีบักแอป Dockerized C/C++ ด้วย GDBFrontend
ทำตามบทช่วยสอนสั้นๆ นี้สำหรับการดีบักอุปกรณ์ฝังตัวด้วย GDBFrontend
ทำตามบทช่วยสอนสั้นๆ นี้สำหรับการดีบักส่วนขยาย C Python ดั้งเดิมด้วย GDBFrontend
GDBFrontend มี API ที่ทรงพลังและขยายได้ ทำตามบทช่วยสอนสั้นๆ นี้เพื่อเรียนรู้การพัฒนาปลั๊กอิน GDBFrontend
ทำตามบทช่วยสอนสั้นๆ นี้เพื่อดูแนวคิดในการบูรณาการสำหรับข้อกำหนดการพัฒนา/การดีบักพิเศษ
ทำตามบทช่วยสอนนี้สำหรับการดีบัก STM32 ด้วย OpenOCD และ GDBFrontend
GDBFrontend มีตัวประเมินนิพจน์ที่คุณสามารถใช้หลายรายการในเวลาเดียวกันได้
คลิกขวาไปที่เบรกพอยต์เพื่อกำหนดเงื่อนไข
นิพจน์ของตัวแปร สมาชิก และรายการทั้งหมดเชื่อมต่อกันใน VariablesExplorer ของ GDBFrontend
คุณสามารถรับชม กรอง หรือจัดการกระบวนการด้วย Process Manager
GDBFrontend มีชุดคุณลักษณะบางอย่างสำหรับการทำงานร่วมกันซึ่งมีชื่อว่า "Enhanced Collabration"
การวาดการทำงานร่วมกันจะพร้อมใช้งานเมื่อคุณเปิดใช้งานการทำงานร่วมกันขั้นสูง คลิกเพื่อวาดหรือใช้ทางลัด Ctrl + Shift + X เพื่อวาดและ Ctrl + Shift + C เพื่อล้างภาพวาดทั้งหมด
ด้วยการทำงานร่วมกันที่ได้รับการปรับปรุง ไคลเอนต์ดีบักเกอร์ทั้งหมดจะถูกซิงโครไนซ์ในการดูแหล่งที่มา
GDBFrontend สามารถขยายได้มากและมี API ที่มีประสิทธิภาพ ตัวอย่างบางส่วนของความสามารถในการขยายของ GDBFrontend
./gdbfrontend
$ gdbfrontend --help
GDBFrontend is a easy, flexible and extensionable gui debugger.
Options:
--help, -h: Shows this help message.
--version, -v: Shows version.
--gdb-args= " ARGS " , -G " ARGS " : Specifies GDB command line arguments. (Optional)
--gdb-executable=PATH, -g PATH: Specifies GDB executable path (Default is " gdb " command on PATH environment variable.)
--tmux-executable=PATH, -tmux PATH: Specifies Tmux executable path (Default is " tmux " command on PATH environment variable.)
--terminal-id=NAME, -t NAME: Specifies tmux terminal identifier name (Default is " gdb-frontend " .)
--credentials=USER:PASS, -c USER:PASS: Specifies username and password for accessing to debugger.
--host=IP, -H IP: Specifies current host address that you can access via for HTTP and WS servers.
--listen=IP, -l IP: Specifies listen address for HTTP and WS servers.
--port=PORT, -p PORT: Specifies HTTP port. (0 for random port.)
--url-base=PATH, -u PATH: Specifies URL base path. (Default: /)
--readonly, -r: Makes code editor readonly. (Notice: This option is not related to security.)
--workdir, -w: Specifies working directory.
--plugin-dir, -P: Specifies plugins directory.
--dontopenuionstartup, -D: Avoids opening UI just after startup.
--verbose, -V: Enables verbose output.
--help
, -h
แสดงข้อความช่วยเหลือ
--version
, -v
แสดงเวอร์ชัน
--gdb-args="ARGS", -G "ARGS"
ระบุอาร์กิวเมนต์บรรทัดคำสั่ง GDB (ไม่จำเป็น)
--gdb-executable=PATH
, -g PATH
คุณสามารถระบุพาธที่รันได้ของ GDB เช่น gdbfrontend --gdb-executable=/path/to/gdb
(ไม่จำเป็น)
--tmux-executable=PATH
, -tmux PATH
คุณสามารถระบุพาธที่รันได้ของ Tmux เช่น gdbfrontend --tmux-executable=/path/to/tmux
(ไม่จำเป็น)
--terminal-id=PATH
, -t PATH
คุณสามารถระบุรหัสเทอร์มินัล Tmux เช่น gdbfrontend --terminal-id=terminal-name
(ค่าเริ่มต้น: gdb-frontend
)
--credentials=USER:PASS
, -c USER:PASS
ระบุชื่อผู้ใช้และรหัสผ่านสำหรับการเข้าถึงโปรแกรมดีบักเกอร์
--host=IP
, -H IP
ระบุที่อยู่โฮสต์ปัจจุบันที่คุณสามารถเข้าถึงได้ผ่านทางเซิร์ฟเวอร์ HTTP และ WS
--listen=IP
, -l IP
ระบุที่อยู่การฟังสำหรับเซิร์ฟเวอร์ HTTP และ WS
--port=PORT
, -p PORT
ระบุพอร์ต HTTP (0 สำหรับพอร์ตสุ่ม)
--url-base=PATH
, -u PATH
ระบุเส้นทางฐาน URL (ค่าเริ่มต้น: /)
--readonly, -r
ทำให้ตัวแก้ไขโค้ดเป็นแบบอ่านอย่างเดียว (หมายเหตุ: ตัวเลือกนี้ไม่เกี่ยวข้องกับความปลอดภัย)
--workdir, -w
ระบุไดเร็กทอรีการทำงาน
--plugin-dir, -P
ระบุไดเร็กทอรีปลั๊กอิน
--dontopenuionstartup
, -D
หลีกเลี่ยงการเปิด UI หลังจากเริ่มต้นระบบ
--verbose
, -V
เปิดใช้งานเอาต์พุตแบบละเอียด
คำสั่ง GDB ของ GDBFrontend เริ่มต้นด้วย gf-
gf-refresh
รีเฟรชไคลเอนต์เบราว์เซอร์ทั้งหมด
gf-theme [theme-name]
สลับไปยังธีมที่ต้องการ ตัวอย่างเช่น: gf-theme light
, gf-theme red
หรือ gf-theme default
สำหรับธีมเริ่มต้น
gf-list-plugins
แสดงรายการปลั๊กอิน GDBFrontend ทั้งหมดในไดเร็กทอรีปลั๊กอิน
gf-load-plugin [plugin-name]
โหลดปลั๊กอิน GDBFrontend
gf-unload-plugin [plugin-name]
ยกเลิกการโหลดปลั๊กอิน GDBFrontend
ปุ่มลัดปัจจุบันมีดังต่อไปนี้
การกระทำ | ปุ่มลัด | บริบท |
---|---|---|
ทั่วไป: เปิดไฟล์ต้นฉบับ | Ctrl + O | GDBส่วนหน้า |
ทั่วไป: ExpressionEvaluator ใหม่ | Ctrl + R | GDBส่วนหน้า |
ทั่วไป: ExpressionEvaluator ใหม่บนหน้าต่างดั้งเดิม | Ctrl + Shift + R | GDBส่วนหน้า |
ทั่วไป: ตัวค้นหาแหล่งสัญญาณแบบคลุมเครือ | Ctrl + P | GDBส่วนหน้า |
รันไทม์: รัน | F5 | GDBส่วนหน้า |
รันไทม์: ดำเนินการต่อ | F6 | GDBส่วนหน้า |
รันไทม์: หยุดชั่วคราว/ขัดจังหวะ | F7 | GDBส่วนหน้า |
รันไทม์: ก้าวข้าม | F8 | GDBส่วนหน้า |
รันไทม์: ก้าวเข้าสู่ | F9 | GDBส่วนหน้า |
รันไทม์: คำแนะนำขั้นตอน | F10 | GDBส่วนหน้า |
รันไทม์: หยุด | F11 | GDBส่วนหน้า |
การทำงานร่วมกันที่ได้รับการปรับปรุง: สลับโหมดการวาดภาพ | Ctrl + Shift + X | GDBFrontend / การทำงานร่วมกันที่ได้รับการปรับปรุง: เปิดใช้งานแล้ว |
การทำงานร่วมกันที่ได้รับการปรับปรุง: ล้างภาพวาดทั้งหมด | Ctrl + Shift + C | GDBFrontend / การทำงานร่วมกันที่ได้รับการปรับปรุง: เปิดใช้งานแล้ว |
GDBFrontend มีธีมในตัว
สำหรับการสลับระหว่างธีมให้ใช้คำสั่ง gf-theme [THEME]
บนเชลล์ GDB
(gdb) gf-theme doki
(gdb) gf-theme sky
(gdb) gf-theme sakura
(gdb) gf-theme waifu
(gdb) gf-theme cyberpunk
(gdb) gf-theme dark
(gdb) gf-theme green
(gdb) gf-theme light
(gdb) gf-theme red
สำหรับการเปลี่ยนกลับไปใช้ธีมเริ่มต้น
(gdb) gf-theme
คุณอาจต้องการดูบทช่วยสอนการพัฒนาปลั๊กอิน
คุณสามารถเข้าถึง Python API ของ GDBFrontend ผ่านทางโมดูล gdbfrontend
(gdb) python-interactive
> >> dir ( gdbfrontend )
ตัวอย่างเช่น คุณสามารถรับซ็อกเก็ตไคลเอนต์ทั้งหมดดังนี้:
> >> gdbfrontend . api . globalvars . httpServer . ws_clients
{ 1 : < server . GDBFrontendSocket object at 0 x ... > }
หรือคุณสามารถรับปลั๊กอินทั้งหมด:
> >> gdbfrontend . plugin . getAll ()
[ 'hello' , 'theme_cyberpunk' , 'theme_dark' , 'theme_doki' , 'theme_green' , 'theme_light' , 'theme_red' , 'theme_sakura' , 'theme_sky' , 'theme_waifu' ]
คุณสามารถใช้ตัวเลือก --credentials=USER:PASS
เพื่อเพิ่มการรับรองความถูกต้อง HTTP ให้กับเซสชันดีบักเกอร์ของคุณ
GDBFrontend พัฒนาด้วยการทดสอบบนเบราว์เซอร์ที่ใช้ Chromium เป็นหลัก มันจะทำงานอย่างถูกต้องกับเบราว์เซอร์อื่นโดยเฉพาะกับ Firefox แต่ถ้าคุณประสบปัญหาบนเบราว์เซอร์อื่น คุณสามารถส่งรายงานข้อผิดพลาดได้
ฟังก์ชัน GDBFrontend ส่วนใหญ่ปลอดภัยสำหรับเธรดและทำงานบนเธรดหลักของ GDB ดังนั้น หากคุณเรียกใช้บางสิ่งที่บล็อกบนเชลล์ GDB ฟังก์ชัน GDBFrontend จะต้องรอจนกว่าจะเสร็จสิ้น
คุณจะได้รับคำเตือนนี้เมื่อฟังก์ชัน GDBFrontend ที่ปลอดภัยสำหรับเธรดจำเป็นต้องทำงาน และคุณกำลังบล็อกเธรดหลักของ GDB
(gdb) shell
$ ...
เมื่อคุณออกจากเชลล์ การบล็อกฟังก์ชัน GDBFrontend จะทำงานต่อไป
หมายเหตุ: บางครั้งคุณอาจได้รับคำเตือนนี้โดยไม่ได้รันสิ่งใดในเชลล์ GDB หมายความว่าบางสิ่ง (ใน event-loop ของ GDB) กำลังใช้เวลานาน ในกรณีนี้ เพียงเพิกเฉยต่อคำเตือนนี้
GDBFrontend ส่ง SIGTERM ไปยังกระบวนการย่อย แอปพลิเคชันของคุณ และกระบวนการย่อย หากแอปพลิเคชันของคุณกำลังแยกกระบวนการใหม่และตั้งค่า PGID GDBFrontend อาจไม่ปิดกระบวนการเหล่านั้น ในกรณีนี้คุณควรส่ง SIGKILL ไปยังกระบวนการของคุณ
pkill -f gdb
หากคุณใช้ ExpressionEvaluator กับตัวแปร/สมาชิกที่ขยายความลึกที่ยาวมาก ประสิทธิภาพการย้ายหน้าต่าง scroll และ evaluator ของคุณอาจได้รับผลกระทบที่ไม่ดีต่อการแสดงภาพพอยน์เตอร์ ในสถานการณ์นี้ คุณสามารถปิด สัญญาณ และ ช่อง ชี้สำหรับหน้าต่างผู้ประเมินนั้นได้
ในความเป็นจริง gdb-frontend สามารถทำงานบน Windows ได้ แต่มีปัญหาร้ายแรงบางประการในเวอร์ชัน Windows ของ GDB ที่ทำให้หลีกเลี่ยงการใช้ gdb-frontend บน Windows แน่นอนคุณสามารถใช้ gdb-frontend บน WSL ได้หากคุณใช้ Windows 10
คุณสามารถใช้ gdb-frontend บน WSL (ระบบย่อย Windows สำหรับ Linux)
/proc/net/tcp
ไม่ทำงานบน WSL (WSL 2 ไม่มีปัญหานี้) ตั้งแต่เวอร์ชัน 0.2.0-เบต้า GDBFrontend ได้เปลี่ยนไปใช้กลยุทธ์การกำหนดเวอร์ชันใหม่
ใน vX.YZ-STABILITY
:
X
เป็นเวอร์ชัน หลัก ซึ่งมีการเปลี่ยนแปลงในระยะยาวพร้อมคุณสมบัติและการปรับปรุงที่สำคัญY
เป็นเวอร์ชัน หลัก ที่มีคุณสมบัติและการปรับปรุงใหม่Z
เป็นเวอร์ชัน แก้ไขข้อบกพร่อง ของเวอร์ชันหลักSTABILITY
คือระดับความเสถียรของการเปิดตัว ( alpha
, beta
, rcN
, stable
) เอกสารยังเป็นสิ่งที่ต้องทำ
เอกสาร API ยังเป็นสิ่งที่ต้องทำ
คุณสามารถอ่านบทช่วยสอนการพัฒนาปลั๊กอินได้
ธีมได้รับการพัฒนาเป็นปลั๊กอิน
เข้าร่วมชุมชน Discord
คุณสามารถมีส่วนร่วมกับโครงการหรือการพัฒนาปลั๊กอินได้ ยินดีต้อนรับทุกคอมมิต
สกุลเงิน | ที่อยู่ |
---|---|
บีทีซี | bc1qhvlc762kwuzeawedl9a8z0duhs8449nwwc35e2 |
ผลประโยชน์ทับซ้อน / USDT / USDC | 0x1D99B2a2D85C34d478dD8519792e82B18f861974 |
เอ็กซ์เอ็มอาร์ | 88qvS4sfUnLZ7nehFrz3PG1pWovvEgprcUhkmVLaiL8PVAFgfHjspjKPLhWLj3DUcm92rwNQENbJ1ZbvESdukWvh3epBUty |
ขอแนะนำให้บริจาค USDT หรือ USDC แต่คุณสามารถบริจาคสกุลเงินใดก็ได้ข้างต้น -
ลิขสิทธิ์ (C) 2019, Oğuzhan Eroğlu [email protected] (https://oguzhaneroglu.com/)
GNU ใบอนุญาตสาธารณะทั่วไป v3 (GPL-3)
คุณสามารถคัดลอก แจกจ่าย และแก้ไขซอฟต์แวร์ได้ตราบใดที่คุณติดตามการเปลี่ยนแปลง/วันที่ในไฟล์ต้นฉบับ การแก้ไขหรือซอฟต์แวร์ใดๆ รวมถึง (ผ่านคอมไพเลอร์) โค้ดลิขสิทธิ์ GPL จะต้องพร้อมใช้งานภายใต้ GPL พร้อมด้วยคำแนะนำในการสร้างและติดตั้ง