以下是在Debian上调试Rust程序的常用技巧:
基础打印调试
println!("{:?}", variable)打印变量内容,{:#?}可美化输出(需为结构体实现Debug特征)。dbg!宏可快速打印变量值及位置信息,支持表达式和结构体。实现Debug特征
Debug,或手动实现fmt::Debug以控制输出格式。#[cfg_attr(debug_assertions, derive(Debug))]在调试模式下自动启用Debug。使用调试器
rust-gdb或rust-lldb启动调试会话,支持设置断点、单步执行、查看变量等操作。break(设置断点)、next/step(单步执行)、print(查看变量)、backtrace(查看调用栈)。break file.rs:10 if x > 5(仅在满足条件时中断)。调试符号管理
Cargo.toml中设置[profile.dev] debug = true保留调试符号。cargo deb --separate-debug-symbols将符号单独打包。静态编译(避免库依赖问题)
.cargo/config.toml中配置rustflags = ["-C", "target-feature=+crt-static"],生成静态链接二进制文件。内存与性能调试
valgrind --tool=memcheck检测内存泄漏或非法访问。RUST_BACKTRACE=1获取程序崩溃时的调用栈回溯。IDE集成调试
rust-analyzer,配置launch.json后可直接在编辑器中设置断点、查看变量。以上技巧可根据具体场景选择,基础调试优先使用println!/dbg!,复杂场景结合调试器或静态编译分析[1,2,3,4,5,6,7,8,9,10,11]。