在 Ubuntu 上调试 Rust 的高效做法 一 环境准备 工欲善其事,必先利其器。调试 Rust 程序的第一步,自然是把环境搭建妥当。 安装或更新 Rust 工具链:推荐使用 rustup 进行管理,这是社区的首选方式。 安装命令:直接运行 curl --proto ‘=https’ --tls
Ubuntu系统下Rust程序调试方法详解
作者:技术拾光
时间:2026-05-19
浏览:125
文章目录
在 Ubuntu 上调试 Rust 的高效做法

一 环境准备
工欲善其事,必先利其器。调试 Rust 程序的第一步,自然是把环境搭建妥当。
- 安装或更新 Rust 工具链:推荐使用 rustup 进行管理,这是社区的首选方式。
- 安装命令:直接运行
curl --proto ‘=https’ --tlsv1.2 -sSf https://sh.rustup.rs | sh即可。 - 安装完成后,别忘了将
~/.cargo/bin加入 PATH 环境变量,通常执行source $HOME/.cargo/env就能生效。
- 安装命令:直接运行
- 安装系统调试器与 Rust 调试组件:
- 系统调试器:通过
sudo apt update && sudo apt install gdb lldb安装 GDB 和 LLDB。 - Rust 增强组件:运行
rustup component add rust-src llvm-tools-preview,这能为调试器提供更丰富的源码和工具支持。
- 系统调试器:通过
- 构建模式选择:这里有个关键点,调试时务必使用 debug 构建(命令:
cargo build)。这种模式优化少,但包含了完整的调试符号,是排查问题的理想选择。至于性能分析,那才是cargo build --release的用武之地。
二 命令行调试 GDB 与 LLDB
对于习惯命令行的高手来说,直接使用调试器往往最直接、最灵活。
- 使用 Rust 增强的调试器启动:
- 如果用 GDB:命令是
rust-gdb target/debug/your_project。 - 如果用 LLDB:命令是
rust-lldb target/debug/your_project。
- 如果用 GDB:命令是
- 常用调试命令(在调试器内):掌握几个核心命令,就能解决大部分问题。
- 设置断点:
break main或break src/main.rs:10。 - 运行程序:
run(或continue)。 - 单步执行:
step/next。 - 打印变量:
print variable_name。 - 查看回溯:
backtrace。
- 设置断点:
- 崩溃时获取更完整回溯:如果程序 panic 了,想看到完整的调用栈?很简单,在运行前设置环境变量即可:
RUST_BACKTRACE=1 cargo run。
三 在 VSCode 中调试
对于追求高效和可视化体验的开发者,在 VSCode 中集成调试环境是个不错的选择。
- 安装扩展:这是必须的第一步。
- rust-analyzer:提供强大的语言服务器支持。
- CodeLLDB:实现 LLDB 调试器的无缝集成。
- 生成调试配置(.vscode/launch.json):配置一次,后续调试就方便了。
- 点击侧边栏的“运行与调试” → “创建 launch.json” → 选择“LLDB”。
- 一个典型的 Linux 配置示例如下:
{ “version”: “0.2.0”, “configurations”: [{ “name”: “(linux) Launch”, “type”: “lldb”, “request”: “launch”, “program”: “${workspaceFolder}/target/debug/${workspaceFolderBasename}”, “args”: [], “cwd”: “${workspaceFolder}” }] }
- 调试要点:
- 再次强调,确保你的项目是用
cargo build构建的 debug 版本。 - 设置好断点后,按 F5 启动调试,之后就可以在变量面板里方便地查看和监视表达式了。
- 再次强调,确保你的项目是用
四 内存与性能问题排查
调试不仅仅是单步跟踪,遇到内存错误或性能瓶颈时,需要更专业的工具。
- 内存错误与泄漏检测(Valgrind):这是 Linux 下的经典工具,但有些注意事项。
- 安装:
sudo apt install valgrind。 - 检测:
valgrind --tool=memcheck target/debug/your_project。 - 重要提示:Valgrind 对 Rust 默认可能使用的 jemalloc 内存分配器支持有限。如果遇到问题,尝试让 Rust 使用系统默认分配器,通常能获得更准确的结果。
- 安装:
- 快速打印调试:有时候,最简单的方法最有效。
println!和dbg!宏非常适合用于临时输出变量值,快速定位问题逻辑。
- 回溯与日志:
- 当程序崩溃时,启用
RUST_BACKTRACE=1来获取完整的调用栈信息,这是定位 panic 根源的利器。
- 当程序崩溃时,启用
实用工具推荐
电子包浆
使用 ›绿化、压缩、噪点和虚拟水印,自由调节做旧程度。
图片压缩
使用 ›选择画质和输出格式,预览压缩前后的大小。
相关文章