温馨提示×

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
  • 附加调试器:
    • GDB:gdb -p
    • LLDB:lldb -p
  • 附加后可使用 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-analyzerCodeLLDB
    • 配置 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 输出结构化日志。

0