GDBFrontend:一款靈活可擴展的GUI調試工具
- 2020 年 3 月 31 日
- 筆記
今天給大家介紹的是一款名叫GDBFrontend的工具,這是一款GUI調試工具,該工具易於使用,並且靈活可擴展,廣大研究人員可以根據自己的需求來對GDBFrontend進行功能擴充。
工具安裝
Debian安裝(Debian / Ubuntu / KDE Neon)
如果你使用的是基於Debian發行版的作業系統平台,你可以使用Deb包來安裝GDBFrontend。
廣大用戶可以使用下列命令完成工具安裝:
echo "deb [trusted=yes]https://oguzhaneroglu.com/deb/./" | sudo tee -a /etc/apt/sources.list > /dev/null sudo apt update sudo apt install gdbfrontend
通過apt完成安裝後,我們還需要使用apt upgrade來完成新版本更新,獲取更新的命令如下:
sudo apt update sudo apt upgrade gdbfrontend
接下來,我們就可以使用下列命令來運行GDBFrontend了:
gdbfrontend
GIT安裝
當然了,廣大研究人員也可以直接下載該項目的最新版本源碼,然後配置並運行GDBFrontend。
工具要求:
1、GDB => 8.2 (python3) 2、python3 3、tmux
此時,我們可以使用下列命令將項目源碼克隆至本地,然後安裝並使用GDBFrontend:
git clonehttps://github.com/rohanrhu/gdb-frontend.gitgdb-frontend cd gdb-frontend ./gdbfrontend
接下來,使用下列命令運行工具:
http://127.0.0.1:5551/terminal/
如果你不需要配合終端使用的話,可以運行下列命令:
http://127.0.0.1:5551/
我們還可以使用下列命令打開GBD Shell:
tmux a -t gdb-frontend
Flatpak
在新版本的GDBFrontend中,還會添加針對Flatpak包的支援。
./gdbfrontend
$ gdbfrontend --help GDBFrontend is a easy, flexible and extensionable gui debugger. Options: --help, -h: 顯示幫助資訊 --version, -v: 顯示版本資訊 --gdb-executable=PATH, -g PATH: 指定GDB可執行文件路徑 --tmux-executable=PATH, -tmux PATH: 指定Tmux可執行文件路徑 --terminal-id=NAME, -t NAME: 指定tmux 終端識別符名稱 --verbose, -V: 啟用verbose 輸出
參數選項
--help, -h
顯示幫助資訊
--version, -v
顯示版本資訊
--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 終端識別符名稱(ID),例如:gdbfrontend —terminal-id=terminal-name。(默認: gdb-frontend)
--verbose, -v
啟用verbose 輸出
錯誤解決
有的時候GDB和GDBFrontend可能會以非正常狀態關閉,此時我們可以使用下列命令終止gdb-frontend Shell:
tmux kill-session -t gdb-frontend
插件系統開發
插件樣本
下面給出的是一個插件樣本,可以在項目目錄plugins/hello中的hello文件中找到相關程式碼。
首先,我們需要找到config.py文件,然後取消下列程式碼的注釋:
disabled_plugins = ["hello"]
GDBFrontend的插件都存儲在plugins/目錄中,典型的插件文件結構如下:
plugins/hello/frontend/html/hello.htmljs/hello.jscss/hello.cssurl_modules/api.pyconfig.pyurls.pyhello.py
插件文件-config.py
一個插件文件應當包含的基礎資訊如下:
DESCRIPTION = "Example GDBFrontend plugin."AUTHOR = "Oğuzhan Eroğlu <[email protected]> (https://oguzhaneroglu.com/)"HOMEPAGE = "https://github.com/rohanrhu/gdb-frontend"VERSION = [0, 0, 1]
hello.py樣本程式碼:
import importlibimport plugingdb = importlib.import_module("gdb")class HelloPlugin(plugin.GDBFrontendPlugin):def __init__(self):plugin.GDBFrontendPlugin.__init__(self)def loaded(self):gdb.events.new_objfile.connect(self.gdb_on_new_objfile)def unloaded(self):gdb.events.new_objfile.disconnect(self.gdb_on_new_objfile)def gdb_on_new_objfile(self, event):print("[HELLO] Event: new_objfile:", event)
工具運行截圖
許可證協議
本項目的開發與發布遵循GNU General Public License v3 (GPL-3)開源許可證協議。
項目地址
GDBFrontend:【GitHub傳送門】
* 參考來源:rohanrhu,FB小編Alpha_h4ck編譯,轉載請註明來自FreeBuf.COM