Rust在Debian上的调试工具有哪些
小樊
44
2025-12-26 20:13:09
Rust 在 Debian 上的调试工具与用法
命令行与图形化工具清单
- 调试器:GDB、LLDB(系统包管理器安装),以及 Rust 官方提供的增强包装器 rust-gdb、rust-lldb(由 rustup 提供,对 Rust 类型更友好)。
- 图形化与 IDE:VS Code + rust-analyzer + CodeLLDB,CLion(内置 Cargo/LLDB/GDB 调试支持)。
- 辅助工具:Valgrind(内存错误检测)、println! / dbg!(快速打印调试)、log + env_logger(结构化日志)。
- 典型用途:源码级断点、变量/调用栈查看、条件断点、内存泄漏与越界检测、日志追踪。
安装与环境准备
- 安装系统调试器:sudo apt update && sudo apt install gdb lldb。
- 安装 Rust 工具链与增强组件:通过 rustup 安装;添加组件:rustup component add rust-src llvm-tools-preview(提供 rust-gdb/rust-lldb 与格式化支持)。
- 编译带调试信息:使用 cargo build(默认 dev 配置包含调试符号);如需显式控制,可在 Cargo.toml 中设置:
[profile.dev]
debug = true
- 注意:发布构建(cargo build --release)默认优化较高、调试信息可能减少,图形化变量/调用栈可读性会下降,优先用 dev 构建进行源码级调试。
常用工具简明用法
- GDB 与 rust-gdb
- 启动:rust-gdb target/debug/your_program
- 常用:break file.rs:line / break function;run;next / step;print var;continue;backtrace。
- LLDB 与 rust-lldb
- 启动:rust-lldb target/debug/your_program
- 常用:b binary_search 或 breakpoint set -f main.rs -l 10;r;n / s;frame variable;condition 断点(如按条件命中)。
- 图形化调试(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}”
}
]
}
- 辅助工具
- 内存检测:valgrind --tool=memcheck target/debug/your_program。
- 快速打印:dbg!(x); 或 println!(“x = {:?}”, x);
- 结构化日志:使用 log + env_logger,运行时通过 RUST_LOG=info cargo run 控制级别。
选择建议与常见问题
- 选择建议:优先使用 rust-gdb/rust-lldb 获得更好的 Rust 类型显示;图形化调试选 VS Code + CodeLLDB 或 CLion;内存问题用 Valgrind;快速排查用 dbg! / println! / 日志。
- 常见问题与处理:
- 断点看不到源码或变量显示不完整:确认是 dev 构建(调试符号完整),必要时在 Cargo.toml 中显式设置 debug = true。
- LLDB 类型/格式化不理想:确保安装了 llvm-tools-preview(提供 rust-lldb 的格式化脚本)。
- IDE 调试启动失败:检查 CodeLLDB 扩展已安装、program 路径为 target/debug/ 可执行文件,Cargo 工具链配置正确。