在 Debian 上调试 Rust 程序,通常可以分为环境准备、编译配置、调试工具选择、常见调试方式几个部分。下面按实用角度说明。
如果你还没装:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source ~/.cargo/env
Debian 上常用:
sudo apt update
sudo apt install gdb
# 或
sudo apt install lldb
Rust 官方更推荐 GDB(带 Rust 支持)或 LLDB。
cargo build
生成的二进制在:
target/debug/your_program
⚠️ 不要使用:
cargo build --release
release 模式会优化代码,调试困难。
Cargo.toml:
[profile.dev]
debug = true
gdb target/debug/your_program
run
break main
break src/main.rs:10
next
step
print x
backtrace
Rust panic 时:
run
bt
可以看到 Rust 栈帧(虽然带 mangled 名)。
lldb target/debug/your_program
常用:
run
break set --file src/main.rs --line 10
bt
frame variable
launch.json{
"type": "lldb",
"request": "launch",
"name": "Debug",
"program": "${workspaceFolder}/target/debug/your_program",
"args": []
}
直接 F5 调试,支持:
println!println!("x = {:?}", x);
cargo add log
cargo add env_logger
env_logger::init();
log::debug!("value = {}", x);
运行:
RUST_LOG=debug cargo run
cargo expand
cargo build 2>&1 | grep warning
RUST_BACKTRACE=1 cargo run
gdbrr(可逆调试,很强但稍复杂)sudo apt install rr
如果你愿意,可以告诉我:
我可以给你更具体的调试方案。