这是什么东西?
它是 gdb(GNU 调试器)的图形界面:不用再敲命令,你可以直接在浏览器界面里加断点、查看调用栈、直观地查看数据结构。
那它是需要安装的桌面软件,还是跑在浏览器里的东西?
都不是传统意义上的:它既不是经典的桌面图形软件,也不是托管在网上的网站。你在终端里运行 gdbgui,它会在本地启动一个进程,然后调试器界面会作为新标签页在你的浏览器里打开。
我怎么把它跑起来?
先用 pip install gdbgui 把它作为 Python 包安装,然后在终端里运行 gdbgui 命令;浏览器会打开一个新标签页显示界面,你也可以把要调试的程序作为参数传进去。
我还需不需要单独安装 gdb 本身?
需要 —— gdbgui 只是套在 gdb 外面的前端界面,所以你的电脑上必须装有 gdb;这个界面只是替你去操作 gdb 而已。
macOS、Windows 和 Linux 上都能用吗?
只要装了 Python 和 gdb 的地方基本都能跑 —— 包括 Linux、macOS 和 Windows —— 因为它的后端就是一个本地 Python 进程,前端只是一个浏览器标签页。
在这个界面里我到底能做什么?
它的主打功能就是添加断点、查看调用栈、可视化查看数据结构 —— 也就是把 gdb 核心的调试流程,从文字命令变成了图形化操作。
还有命令行吗,还是只能点按钮?
两者都有:React 界面在图形控件旁边内嵌了一个 xterm.js 终端,它通过 websocket(socket.io)和 Python 后端通信,所以你随时可以直接敲 gdb 命令。
它免费吗?项目成熟吗?
完全免费开源,采用 GPL-3.0 许可证,在 GitHub 上有超过一万个 star;这个项目从 2016 年就开始了。
What are similar projects?
compiler-explorer, zenc, vConsole, rr, delve, Reverse-Engineering, kitty, pwndbg
