在Ubuntu上調試Rust程序,你可以使用以下幾種調試技巧:
sudo apt install gdb
sudo apt install lldb
在編譯Rust程序時,確保帶上調試信息。默認情況下,cargo build
就會生成帶有調試信息的可執行文件。如果你想明確指定,可以使用--debug
選項:
cargo build --debug
gdb target/debug/your_program_name
break main
run
next
:逐行執行,跳過函數調用。step
:逐行執行,進入函數內部。print variable_name
quit
lldb target/debug/your_program_name
breakpoint set --name main
run
next
:逐行執行,跳過函數調用。step
:逐行執行,進入函數內部。frame variable my_variable
quit
大多數現代集成開發環境(IDE)如Visual Studio Code、IntelliJ IDEA等都提供了對Rust的良好支持,包括調試功能。這些IDE通常具有代碼補全、錯誤檢查、斷點設置和調試控制等高級功能。
在代碼里添加日志也是一種常用的調試方法。你可以使用log
或env_logger
等庫來記錄程序的運行狀態。下面是一個簡單的示例:
use log::{info, error};
fn main() {
info!("Program started");
// ...
error!("An error occurred");
}
運行程序時,設置RUST_LOG
環境變量來控制日志級別:
RUST_LOG=info cargo run
println!
宏進行調試在代碼中插入println!("Debug message");
可以在控制臺輸出調試信息。這對于簡單的調試任務非常有用。
dbg!
宏進行調試Rust 1.33引入了dbg!
宏,它可以打印變量值并包含文件名和行號,非常適合快速調試。
fn main() {
let x = 5;
dbg!(x); // 輸出: src/main.rs:2:14: 2:15 x = 5
}
cargo test
進行測試編寫單元測試和集成測試,并使用cargo test
來運行它們。這可以幫助你發現代碼中的邏輯錯誤。
通過結合這些技巧,你可以在Ubuntu系統中更有效地調試Rust程序。