SeerGDB 的 GUI 前端
Seer 是一个用于 Linux 的 gdb 的 gui 前端,目前正在积极开发当中。其目标是成为一个简单但令人愉悦的 gdb 图形用户界面。
要求
-
Linux
-
C++17
-
带有“mi”解释器的 gdb
-
CMake(3.10 或更新版本)
-
QT6
- 当从源代码构建 Seer 时,你将需要在你的系统上安装 QT6“devel”包以用于你的分发。
- Core
- Gui
- Widgets
- PrintSupport
- Charts
- Svg
- Qt6 构建说明在这里:https ://github.com/epasveer/seer/wiki/Building-Seer---Qt6
- 当从源代码构建 Seer 时,你将需要在你的系统上安装 QT6“devel”包以用于你的分发。
-
QT5
- 目前,Seer 仍然可以使用 Qt5 构建。
- Qt5 构建说明在这里:https ://github.com/epasveer/seer/wiki/Building-Seer---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 的反向调试模式。
- 打开或关闭指指令记录。
- 将播放方向设置为向前或向后。
评论