Rust 在 Ubuntu 中如何进行调试
小樊
37
2025-12-30 06:27:51
在 Ubuntu 中调试 Rust 的高效方法
一 环境准备与构建配置
- 安装调试器与工具链:在终端执行 sudo apt install gdb lldb;如使用 VS Code,建议安装 rust-analyzer 与 CodeLLDB 扩展。调试依赖调试符号,确保使用开发配置构建:cargo build(默认生成调试信息)。如需显式控制,在 Cargo.toml 中保留或设置 [profile.dev] debug = true。必要时可使用 rust-gdb/rust-lldb 包装器获得更好的 Rust 语法与类型支持。
二 命令行调试 GDB 与 LLDB
- 使用 GDB:cargo build 后启动 rust-gdb target/debug/your_program;常用命令:break src/main.rs:10(断点)、run(运行)、next/step(单步跳过/进入)、print x(打印变量)、backtrace(查看调用栈)。现代 **GDB(≥ 8.0)**对 Rust 语法有较好支持。
- 使用 LLDB:cargo build 后启动 rust-lldb target/debug/your_program;常用命令:breakpoint set --name main(断点)、run、next/step、frame variable my_var(查看变量)。LLDB 对 Option/Result/Box 等类型有更友好的显示与检查能力。
三 IDE 图形化调试 VS Code
- 安装扩展:VS Code 扩展市场安装 rust-analyzer 与 CodeLLDB。在项目根目录创建 .vscode/launch.json,示例配置:
{
“version”: “0.2.0”,
“configurations”: [
{
“type”: “lldb”,
“request”: “launch”,
“name”: “Debug”,
“program”: “${workspaceFolder}/target/debug/your_program”,
“args”: [],
“cwd”: “${workspaceFolder}”
}
]
}
- 使用方式:在代码行号左侧点击设置断点,按 F5 启动调试,可在调试侧边栏查看变量、调用栈并控制执行。
四 快速定位与辅助工具
- 回溯与日志:程序崩溃时设置环境变量查看调用栈:RUST_BACKTRACE=1 cargo run;日常可用 dbg! 快速打印值与位置,或用 log + env_logger 输出结构化日志(RUST_LOG=info cargo run)。
- 内存与性能:用 valgrind --tool=memcheck 检测内存错误与泄漏;性能分析可用 perf record/report;生成火焰图可用 cargo install flamegraph 后执行 flamegraph ./target/release/your_program。
五 常见问题与排查
- 无调试符号或源码对不上:确认使用 cargo build 而非 --release;在 Cargo.toml 中确保 [profile.dev] debug = true;必要时清理并重构建(cargo clean && cargo build)。
- 第三方库或系统依赖缺失导致构建/运行异常:安装常用依赖(如 sudo apt-get install build-essential libssl-dev pkg-config),并根据报错安装对应 -dev 包;更新工具链(rustup update)后重试。