Seer 是一個用於Linux 的gdb 的gui 前端,目前正在積極開發當中。其目標是成為一個簡單但令人愉悅的gdb 圖形用戶界面。
要求
Linux
C++17
帶有“mi”解釋器的gdb
CMake(3.10 或更新版本)
QT6
QT5
v1.17 版將是最後一個Qt5 版本。下一個版本將是v2.0,並且將基於Qt6。不過目前還是可以用Qt5 編譯的。
Seer 的主視圖如下所示:
源/函數/類型/變量/庫
- 程序中使用的源文件/頭文件列表。
- 搜索函數、類型和靜態變量。雙擊將打開源文件。
- 程序引用的共享庫列表。
- 可以搜索源文件/頭文件列表。這將“shrink”顯示的文件列表。
- 雙擊文件將在代碼管理器中打開它。
變量/寄存器信息
- 顯示變量和寄存器值。
- “Logger”——記錄一個變量的值。手動輸入或雙擊在代碼管理器中打開的文件中的變量。
- “Tracker”——創建一個變量列表來顯示gdb 到達停止點(step、next、finish 等)時的值。當到達停止點時,列表中的所有變量將顯示它們可能的新值。
- “Registers” – 顯示所有cpu 寄存器的值。
Code Manager。
- Seer gui 中部的大片區域。
- 源文件在此視圖中打開。
- 可以使用^F 搜索文件中的文本。
- 雙擊變量名可以將變量添加到“記錄器”。雙擊並按下CTLR 鍵將在變量前加上””。按住SHIFT 鍵雙擊將在變量前添加“&”。按住CTRL+SHIFT 鍵雙擊將在變量前添加“ &”。
- 通過選擇變量名稱和 RMB 並選擇“添加變量到跟踪器”,可以將變量添加到“跟踪器”。
- 通過選擇變量名和RMB 並選擇“將變量添加到內存可視化器”,可以將變量添加到“內存可視化器”。
- 可以通過RMB 在特定行上創建 breakpoint/printpoint。
- 可以在特定行按 RMB 執行到特定行。
- 可以通過雙擊選項卡來分離此視圖中的選項卡。
Breakpoints、Watchpoints、Catchpoints、Printpoints、manual gdb commands 和logs
- Code Manager 下方的區域。
- Manual commands。手動輸入gdb 或gdbmi 命令。這些命令會被記住以供下一次Seer 使用。
- Breakpoint manager。創建和管理 Bbreakpoints。
- Watchpoint manager。創建和管理 watchpoints。watchpoint 監視變量何時被訪問(讀、寫、讀/寫)。
- Catchpoint manager。創建和管理 catchpoints。catchpoint 停止執行C++ throw/rethrow/catch 調用。
- Printpoint manager。創建和管理 printpoints。printpoint 類似於 breakpoint,但它允許你在該 printpoint 去 print 變量。參見gdb 的“dprintf”調用。
- GDB output。 gdb 程序本身的任何輸出的日誌。
- Seer output。 Seer 程序本身的任何輸出的日誌。作為診斷。
- 可以通過雙擊選項卡來分離此視圖中的選項卡。
Stack frame information。
- Stack frame list。雙擊一個框架可以改變作用域(當前函數)。
- Stack frame arguments。對於每一幀,print 傳遞給每個函數的參數。
- Stack locals。對於當前函數,print 局部變量的值。
線程信息。
- 線程ID。所有線程的列表。雙擊線程ID 以更改範圍(當前線程)。
- Thread frames。對於每個線程,列出其棧幀。
支持Gdb 的反向調試模式。
- 打開或關閉指指令記錄。
- 將播放方向設置為向前或向後。
#Seer首頁文檔和下載 #gdb #的gui #前端 #程式开发