SeerGDB 的 GUI 前端

联合创作 · 2023-09-28 06:01

Seer  是一个用于 Linux 的 gdb 的 gui 前端,目前正在积极开发当中。其目标是成为一个简单但令人愉悦的 gdb 图形用户界面。

要求

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。创建和管理 watchpointswatchpoint 监视变量何时被访问(读、写、读/写)。
    • Catchpoint manager。创建和管理 catchpointscatchpoint 停止执行 C++ throw/rethrow/catch 调用。
    • Printpoint manager。创建和管理 printpointsprintpoint 类似于 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 的反向调试模式。

    • 打开或关闭指指令记录。
    • 将播放方向设置为向前或向后。
浏览 14
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报