以下是Linux下Rust程序的調試技巧:
sudo apt install gdb lldb
(Debian/Ubuntu)或通過Rust工具鏈自動配置。rust-gdb target/debug/your_program
或 rust-lldb target/debug/your_program
。break file.rs:line
:設置斷點。run
:運行程序。next
/step
:單步執行(跳過/進入函數)。print variable
:查看變量值。dbg!
宏
快速打印變量值及位置,無需手動編寫println!
,支持復雜表達式。
let x = 5;
dbg!(x); // 輸出:[src/main.rs:2] x = 5
rust-lldb
高級功能
Option<T>
、Box<T>
等類型內部狀態。br set -f main.rs -l 10 -c "x > 5"
。p *boxed_value
(查看Box
內容)、p rc_value.strong_count
(查看引用計數)。rust-analyzer
擴展。launch.json
:{
"type": "lldb",
"request": "launch",
"program": "${workspaceFolder}/target/debug/your_program",
"args": []
}
日志調試
使用log
或env_logger
庫,通過RUST_LOG
環境變量控制輸出級別。
use log::info;
fn main() {
env_logger::init();
info!("程序啟動");
}
內存調試
用valgrind
檢測內存泄漏:valgrind --tool=memcheck target/debug/your_program
。
單元測試
通過cargo test
運行測試,快速定位邏輯錯誤。
Cargo.toml
中[profile.dev]
包含debug = true
,保留調試符號。