Rust在CentOS上如何调试
小樊
38
2025-12-09 12:31:20
在 CentOS 上调试 Rust 的实用指南
一 环境准备
- 安装调试器:使用系统包管理器安装 GDB(推荐)或 LLDB。在 CentOS 7/8 上可执行:sudo yum install -y gdb lldb。若系统为 CentOS Stream 9 或已迁移到 dnf,可用:sudo dnf install -y gdb lldb。
- 安装或更新 Rust 工具链:建议通过 rustup 安装/更新,确保 cargo 与 rustc 可用:curl --proto ‘=https’ --tlsv1.2 -sSf https://sh.rustup.rs | sh,然后执行 source $HOME/.cargo/env。
- 验证工具链:rustc --version、cargo --version、gdb --version 应能正常输出版本号。
二 使用 GDB 或 LLDB 命令行调试
- 构建带调试符号的可执行文件:使用开发配置构建(默认即为调试构建)cargo build;发布构建默认不携带完整调试信息,如需在发布包中调试,可在 Cargo.toml 中启用调试信息(见下文“常见问题与技巧”)。
- 启动调试器:
- GDB:gdb target/debug/your_program
- LLDB:lldb target/debug/your_program
- 常用调试命令:
- 设置断点:break main 或 break your_crate::your_module::your_function
- 运行:run(可带命令行参数)
- 单步:step / next
- 打印:print variable 或 print expression
- 栈回溯:backtrace(简写 bt)
- 查看局部变量/参数:info locals / info args
- 退出:quit。
三 使用 VS Code 远程调试
- 安装 VS Code 扩展:Rust Analyzer(提供语言功能)与 CodeLLDB(提供调试适配器)。
- 配置调试启动:在项目根目录创建或编辑 .vscode/launch.json,示例(使用 CodeLLDB):
{
“version”: “0.2.0”,
“configurations”: [
{
“type”: “lldb”,
“request”: “launch”,
“name”: “Debug Rust”,
“program”: “${workspaceFolder}/target/debug/your_program”,
“args”: [],
“cwd”: “${workspaceFolder}”,
“env”: {}
}
]
}
- 远程开发场景:在 CentOS 上运行 VS Code Remote-SSH,打开项目后按 F5 启动调试;确保远端已安装 CodeLLDB 与 GDB。
四 常见问题与技巧
- 断点不生效或无法打印变量:确保构建产物包含调试信息。开发构建默认包含;若需在发布构建中调试,请在 Cargo.toml 增加:
[profile.release]
debug = true
然后重新构建。
- 快速打印表达式:在代码中插入 dbg! 宏,例如:let y = dbg!(x * 2) + 1;,运行时会打印出类似 [src/main.rs:2] x * 2 = 10 的信息,便于定位问题。
- 日志辅助:引入 log 与 env_logger 等日志库,在关键路径输出上下文信息,配合调试器定位复杂问题。
- 程序需要参数或环境变量:在 GDB/LLDB 中用 run arg1 arg2 传参;或在 launch.json 的 args 字段配置。