Linux下Rust调试实操指南
一 环境准备与构建配置
sudo apt-get install gdb lldb;在 CentOS/RHEL 执行 sudo yum install gdb lldb。Rust 提供增强版调试器包装 rust-gdb 与 rust-lldb,能更好识别 Rust 特有类型与宏。cargo build 即为 dev 配置,已包含调试信息;如需显式配置,可在 Cargo.toml 中确保:[profile.dev]
debug = true
opt-level = 0 # 关闭优化更利于单步与观察
overflow-checks = true
调试时优先使用 target/debug/your_program;仅在需要性能分析时再用 –release(优化会重排代码、影响调试体验)。gdb/lldb 配合 rust-gdb/rust-lldb 使用,步骤与主流发行版一致。二 命令行调试器使用
rust-gdb target/debug/your_program
(gdb) break main
(gdb) run
(gdb) next
(gdb) step
(gdb) print variable_name
(gdb) backtrace
(gdb) info locals
(gdb) info args
rust-lldb target/debug/your_program
(lldb) breakpoint set --name main
(lldb) run
(lldb) next
(lldb) step
(lldb) print variable_name
(lldb) bt
(lldb) frame variable
breakpoint set -f src/main.rs -l 42 -c "x > 10"print my_vec.len()、pt my_varwatch my_var(值改变时中断)三 IDE与编辑器调试
.vscode/launch.json,示例:{
"version": "0.2.0",
"configurations": [
{
"type": "lldb",
"request": "launch",
"name": "Debug",
"program": "${workspaceFolder}/target/debug/your_program",
"args": [],
"cwd": "${workspaceFolder}",
"env": {}
}
]
}
之后在代码行号左侧点击设断点,按 F5 启动调试。四 辅助手段与常见问题
dbg!(expr):打印表达式值与 文件:行号,适合临时定位。println!("{:?}", value):对实现 Debug 的类型输出。debug_assert! / assert_eq!:开发期验证不变式,发布构建自动移除(未定义 NDEBUG 时生效)。cargo test 编写单元/集成测试,隔离问题。valgrind --tool=memcheck target/debug/your_program;perf record -g target/debug/your_program && perf report。[profile.dev]
debug = true
rustflags = ["-Z", "backtrace"]