GDBFrontend 是一個簡單、靈活且可擴展的 GUI 偵錯器。在線嘗試!
您可以使用pip
安裝 GDBFrontend 。
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 shell:
tmux a -t gdb-frontend
您可以為基於 Arch 的發行版安裝 Arch Linux 軟體套件。 (AUR 套餐)
yay -S gdb-frontend-bin
你可以運行它:
gdbfrontend
Flatpak 包是一個 TODO。
請按照本教學學習如何使用 GDBFrontend 調試 Dockerized C/C++ 應用程式。
按照此快速教學使用 GDBFrontend 調試嵌入式設備。
請按照此快速教學使用 GDBFrontend 調試本機 C Python 擴充功能。
GDBFrontend 擁有強大且可擴展的 API。按照這個快速教程學習開發 GDBFrontend 插件。
請按照此快速教學了解特殊開發/調試要求的整合想法。
依照本教學使用 OpenOCD 和 GDBFrontend 來調試 STM32。
GDBFrontend 有一個表達式計算器,您可以同時使用多個。
右鍵單擊斷點以設定其條件。
所有變數、成員和項目的表達式都在 GDBFrontend 的 VariablesExplorer 中連接。
您可以使用流程管理器監控、篩選或管理流程。
GDBFrontend 有一組名為「增強協作」的協作功能。
當您啟用增強協作時,協作繪圖可用。點選「繪圖」或使用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 終端機 id,例如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
啟用詳細輸出。
GDBFrontend 的 GDB 指令以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 有內建主題。
若要在主題之間切換,請在 GDB shell 上使用gf-theme [THEME]
指令。
(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
您可能還想查看插件開發教程。
您可以透過gdbfrontend
模組存取 GDBFrontend 的 Python API。
(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 shell 上執行阻塞的內容,GDBFrontend 函數必須等待它完成。
當線程安全的 GDBFrontend 函數需要工作並且您阻塞了 GDB 的主線程時,您將收到此警告。
(gdb) shell
$ ...
當您退出 shell 時,阻塞的 GDBFrontend 函數將繼續運作。
注意:有時您可能會在沒有在 GDB shell 中運行任何內容的情況下收到此警告,這意味著某些內容(在 GDB 的事件循環中)花費了很長時間;在這種情況下,只需忽略此警告即可。
GDBFrontend 向其子進程、您的應用程式及其子進程發送 SIGTERM。如果您的應用程式正在分叉新進程並設定其 PGID,GDBFrontend 可能不會關閉它們。在這種情況下,您應該向您的進程發送 SIGKILL。
pkill -f gdb
如果您將ExpressionEvaluator與非常長的深度擴展變數/成員一起使用,則您的捲動和求值器視窗移動效能可能會受到影響,對指標視覺化不利。在這種情況下,您可以關閉該求值器視窗的訊號和插槽指向。
事實上,gdb-frontend 能夠在 Windows 上運行,但 GDB 的 Windows 版本存在一些嚴重的問題,避免在 Windows 上使用 gdb-frontend。當然,如果您使用的是 Windows 10,則可以在 WSL 上使用 gdb-frontend。
您可以在 WSL(適用於 Linux 的 Windows 子系統)上使用 gdb-frontend。
/proc/net/tcp
介面在 WSL 上不起作用。 (WSL 2 沒有這個問題。) 自 v0.2.0-beta 以來,GDBFrontend 改用了新的版本控制策略。
在vX.YZ-STABILITY
:
X
是主要版本,會隨著主要功能和增強而長期變化。Y
是包含新功能和增強功能的主要版本。Z
是主要版本的錯誤修復版本。STABILITY
是版本的穩定性等級。 ( alpha
, beta
, rcN
, stable
) 文件也屬於 TODO。
API 文件也屬於 TODO。
您可以閱讀插件開發教程。
主題是作為外掛開發的。
加入 Discord 社群。
您可以透過提交專案或開發外掛程式來做出貢獻。歡迎所有提交。
貨幣 | 地址 |
---|---|
比特幣 | bc1qhvlc762kwuzeawedl9a8z0duhs8449nwwc35e2 |
以太坊 / 泰達幣 / 泰達幣 | 0x1D99B2a2D85C34d478dD8519792e82B18f861974 |
XMR | 88qvS4sfUnLZ7nehFrz3PG1pWovvEgprcUhkmVLaiL8PVAFgfHjspjKPLhWLj3DUcm92rwNQENbJ1ZbvESdukWvh3epBUty |
推薦捐贈 USDT 或 USDC,但您可以捐贈上述任何貨幣。 ?
版權所有 (C) 2019,Oğuzhan Eroğlu [email protected] (https://oguzhaneroglu.com/)
GNU 通用公共授權 v3 (GPL-3)
只要您追蹤原始檔案中的變更/日期,您就可以複製、散佈和修改軟體。對軟體的任何修改或軟體,包括(透過編譯器)GPL 授權的程式碼,也必須在 GPL 下以及建置和安裝說明中提供。