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 的反向调试模式。



    • 打开或关闭指指令记录。

    • 将播放方向设置为向前或向后。


浏览 38
点赞
评论
收藏
分享

手机扫一扫分享

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

手机扫一扫分享

编辑 分享
举报