探索未来调试体验:ProDBG 开源项目详解
ProDBG 是一款正在开发的新一代多平台调试器,旨在支持各种目标和操作系统。目前,该项目正处于早期开发阶段,并专注于Linux作为主要目标平台。
构建状态
当前状态
随着 ProDBG 的重写(使用 C++ 和 Qt 进行重构)正在进行中,当前版本的调试功能尚未实现,因为所有的基础架构都在重新构建。UI 部分将使用 C++,但后端可以使用不同的语言(如 Rust),因为提供了 C API 以供选择。
克隆仓库
ProDBG 仓库包含了子模块,使用 git clone --recursive
命令来克隆。如果你第一次忘记使用递归方式,可以在已克隆的仓库里运行 git submodule update --init --recursive
。
编译与构建
需要安装最新稳定版的 Rust(1.36+)。我们推荐使用 rustup 来安装和管理你的 Rust 工具链。还可以通过其他方式安装 rustup。如果你已经安装了 rustup 但不是最新稳定版,只需运行 rustup update
即可。
预先条件
由于 ProDBG 使用了 Qt 作为其用户界面,因此需要在系统上安装 5.7 版本的 64 位版本。同时,你需要设置三个环境变量:QT5_LIB, QT5_BIN, QT5_INC。具体设置方法根据不同平台有所不同。
macOS
预先条件
在 macOS 上构建代码需要 Clang 已经安装。最简单的方式是获取 Xcode 并安装命令行工具。
Rustup
运行:rustup install stable-x86_64-apple-darwin
或 rustup override add stable-x86_64-apple-darwin
构建
运行:scripts/mac_build_debug.sh
输出
主执行文件位于:t2-output/macosx-clang-debug-default/ProDBG.app/Content/MacOS/prodbg
Windows
预先条件
Windows 系统上需要 Visual Studio 2017 或更高版本。
环境变量
例如:
QT5_LIB=C:\Qt\5.12.4\msvc2017_64\lib
QT5_BIN=C:\Qt\5.12.4\msvc2017_64\bin
QT5_INC=C:\Qt\5.12.4\msvc2017_64\include
Rustup
运行:rustup install stable-x86_64-pc-windows-msvc
或 rustup override add stable-x86_64-pc-windows-msvc
构建
运行:scripts\vcvarsx86_amd64.bat
,然后 scripts\win64_build_debug.cmd
运行
运行:t2-output\win64-msvc-debug-default\prodbg.exe
Linux
预先条件
在 Linux 上构建代码需要一些预先安装的依赖项,具体取决于使用的发行版。
对于 Ubuntu:
sudo apt-get update
sudo apt-get install -y libx11-dev libgl1-mesa-dev libgtk-3-dev pkg-config qt515base
此外,ProDBG 使用 Tundra 进行项目构建,MacOS 和 Windows 提供预编译版本,而 Linux 需要自行构建:
git clone https://github.com/deplinenoise/tundra.git
cd tundra
CXX=g++ make
sudo make install
环境变量
设置取决于你的系统配置。以下是两个示例:
export QT5_BIN=/usr/bin
export QT5_INC=/usr/include/x86_64-linux-gnu/qt5/
export QT5_LIB=/usr/lib/x86_64-linux-gnu
export QT5_BIN=/opt/qt512/bin
export QT5_INC=/opt/qt512/include
export QT5_LIB=/opt/qt512/lib
Rustup
运行:rustup install stable-x86_64-unknown-linux-gnu
或 rustup override add stable-x86_64-unknown-linux-gnu
构建
运行:tundra2 linux-gcc-debug
运行
主执行文件位于:t2-output/linux-gcc-debug-default/prodbg
项目和技术应用场景
ProDBG 的设计愿景是提供一个强大的跨平台调试工具,它将在游戏开发、嵌入式系统编程以及软件工程的各个领域大有裨益。开发者可以通过其直观的用户界面进行复杂的代码调试,无论是在 Linux、macOS 还是 Windows 系统下工作,都能体验到一致且高效的调试流程。
项目特点
- 跨平台:ProDBG 支持 Linux、macOS 和 Windows 操作系统,满足不同开发者的需求。
- 多种后端语言支持:UI 部分采用 C++ 实现,但后端可以使用 Rust 等其他语言,提供 C API 用于灵活扩展。
- 易于编译和构建:清晰的构建指南使得在不同平台上构建 ProDBG 变得简单易懂。
- Qt 用户界面:借助于 Qt 库,ProDBG 能够提供优雅、现代的用户体验。
- 早期开发阶段:虽然还处于早期,但随着开发的推进,更多功能和优化将会不断加入。
对于热衷于探索新工具并想要帮助塑造其未来的开发者来说,参与 ProDBG 项目是一个极具价值的机会。无论是为了提升自己的调试技能,还是对开源社区作出贡献,ProDBG 都值得你关注并尝试。