Rust在Debian上如何进行调试
小樊
44
2025-12-22 22:28:35
在 Debian 上调试 Rust 的实用指南
一 环境准备
- 安装调试器与语言支持:
- 安装 GDB/LLDB:sudo apt update && sudo apt install -y gdb lldb
- 安装 rust-gdb / rust-lldb(Rust 对调试器的增强封装):rustup component add rust-src llvm-tools-preview
- 若使用 VS Code,建议安装 CodeLLDB 扩展以获得更好的 Rust 调试体验。
二 使用 GDB 或 LLDB 进行源码级调试
- 构建用于调试的可执行文件:cargo build(默认即为调试信息,无需额外标志)
- 启动调试会话:
- GDB:rust-gdb target/debug/your_program
- LLDB:rust-lldb target/debug/your_program
- 常用调试命令:
- 断点:break main 或 break your_crate::your_function
- 执行控制:continue、step、next
- 查看状态:print variable、backtrace(或 bt)
- 条件断点:break your_function if variable_name == 42
- 崩溃时获取回溯:在运行或调试前设置环境变量 RUST_BACKTRACE=1,可打印完整调用栈,便于定位问题。
三 附加到正在运行的进程
- 获取进程号:例如使用 ps 或 pgrep
- 附加调试器:
- 附加后可使用 backtrace、print 等命令检查现场状态,适用于难以复现的线上问题。
四 系统级与内存问题排查
- 跟踪系统调用:strace -p 或 strace -e trace=open,read,write -p ,定位 I/O、文件、权限等问题
- 跟踪库函数调用:ltrace -p ,分析动态库调用链
- 内存错误与泄漏检测:valgrind --tool=memcheck target/debug/your_program,发现非法访问、越界、未初始化等问题(注意性能开销较大)。
五 IDE 与快速输出辅助
- VS Code 调试配置要点:
- 安装 rust-analyzer 与 CodeLLDB
- 配置 launch.json(type: cppdbg,MIMode: gdb 或 lldb,program 指向 target/debug/your_program,setupCommands 中启用 -enable-pretty-printing)
- 快速打印与日志:
- 使用 println! 与 dbg! 宏进行临时输出
- 使用日志库(如 log + env_logger),运行时设置 RUST_LOG=info cargo run 输出结构化日志。