1. 安装调试工具
在Linux上调试Rust程序,首先需要安装GDB(GNU Debugger)或LLDB(LLVM Debugger)。以Ubuntu/Debian为例,可通过以下命令安装:
sudo apt install gdbsudo apt install lldbrustup添加llvm-tools-preview组件:rustup component add llvm-tools-preview,这会提供rust-gdb(GDB包装器)和rust-lldb(LLDB包装器)。2. 构建带调试信息的程序
使用cargo build编译Rust程序时,默认会生成带调试符号的可执行文件(位于target/debug/目录)。若需显式指定,可添加--debug选项(默认开启,无需额外配置)。确保编译时未启用--release模式(该模式会剥离调试信息)。
3. 使用GDB/LLDB调试
gdb target/debug/your_program 或 lldb target/debug/your_programrust-gdb target/debug/your_program(推荐,自动识别Rust源码结构)或 rust-lldb target/debug/your_programbreak file.rs:line_number(如break main.rs:10,在main.rs第10行暂停)run(或简写r)next(n,逐行执行,跳过函数调用)或step(s,进入函数内部)print variable_name(p,如p x查看变量x的值)backtrace(bt,显示函数调用链)continue(c,运行至下一个断点或程序结束)。4. IDE/编辑器集成(以Visual Studio Code为例)
通过安装Rust Analyzer扩展(提供Rust语言支持),并配置launch.json文件,可实现图形化调试:
{
"version": "0.2.0",
"configurations": [
{
"type": "lldb",
"request": "launch",
"name": "Debug Rust Program",
"program": "${workspaceFolder}/target/debug/your_program",
"args": [], // 命令行参数(如["--input", "file.txt"])
"cwd": "${workspaceFolder}", // 工作目录
"sourceLanguages": ["rust"] // 指定语言为Rust
}
]
}
5. 辅助调试技巧
dbg!宏:Rust内置的便捷调试工具,可打印变量值、文件名及行号(如dbg!(x)输出[file.rs:2] x = 42)。适用于快速定位变量异常。assert!/debug_assert! 宏:assert!(condition)用于检查关键条件(条件为false时终止程序,适用于生产环境);debug_assert!(condition)仅在开发阶段生效(编译时通过--release模式优化掉),用于调试阶段验证内部逻辑。log(日志门面)+env_logger(日志实现)组合,在代码中插入log::info!("Program started")等语句,通过RUST_LOG=info cargo run命令输出日志(支持info、debug、error等级别),帮助跟踪程序运行流程。