首页主机资讯Rust代码在Debian如何调试运行

Rust代码在Debian如何调试运行

时间2025-11-27 18:55:04发布访客分类主机资讯浏览259
导读:在 Debian 上调试运行 Rust 代码 一 环境准备 安装 Rust 工具链:使用 rustup 安装与更新。 命令:curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.r...

在 Debian 上调试运行 Rust 代码

一 环境准备

  • 安装 Rust 工具链:使用 rustup 安装与更新。
    • 命令:curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
    • 生效:source $HOME/.cargo/env
  • 安装 调试器
    • sudo apt update & & sudo apt install gdb lldb
  • 安装 Rust 调试组件(提升调试体验,如源码级显示、格式化打印):
    • rustup component add rust-src
    • rustup component add llvm-tools-preview
  • 建议:保持使用 debug 构建 进行日常调试(Cargo 默认即为 debug),发布时再用 –release

二 命令行调试步骤

  • 编译与运行
    • 调试构建:cargo build(生成于 target/debug/
    • 发布构建:cargo build --release(生成于 target/release/
  • 使用 rust-gdb 调试
    • 启动:rust-gdb target/debug/your_project
    • 常用命令:
      • 断点:break mainbreak your_crate::your_function
      • 运行:run(或 continue
      • 单步:next(不进入函数)、step(进入函数)
      • 打印:print variable_name
      • 栈回溯:backtrace
      • 条件断点:break your_function if variable_name == 42
  • 使用 rust-lldb 调试
    • 启动:rust-lldb target/debug/your_project
    • 常用命令:
      • 断点:breakpoint set --name main--name your_crate::your_function
      • 运行:run / continue
      • 单步:next / step
      • 打印:frame variableprint variable_name
      • 栈回溯:bt
  • 崩溃时获取 backtrace
    • 运行:RUST_BACKTRACE=1 cargo runRUST_BACKTRACE=1 ./target/debug/your_project
    • 提示:确保终端支持显示 Unicode,以便符号正常输出。

三 使用 VS Code 调试

  • 安装扩展:
    • rust-analyzer(语言支持)
    • CodeLLDB(C/C++/Rust 调试器,适用于 LLDB 场景)
  • 配置调试启动(使用 GDB 的示例 .vscode/launch.json):
    • 示例:
      {
      
        "version": "0.2.0",
        "configurations": [
          {
      
            "type": "cppdbg",
            "request": "launch",
            "name": "Debug",
            "program": "${
      workspaceFolder}
      /target/debug/your_project_name",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${
      workspaceFolder}
      ",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerPath": "/usr/bin/gdb",
            "setupCommands": [
              {
      
                "description": "Enable pretty-printing for gdb",
                "text": "-enable-pretty-printing",
                "ignoreFailures": true
              }
      
            ],
            "preLaunchTask": "cargo build"
          }
      
        ]
      }
          
      
    • 如需先构建再调试,可添加 tasks.jsoncargo build 任务,并在 preLaunchTask 中引用。

四 进阶工具与技巧

  • 内存与泄漏检测
    • Valgrindsudo apt install valgrind,运行:valgrind --tool=memcheck target/debug/your_program
  • 系统调用与库调用跟踪
    • stracestrace -p < PID> strace -e trace=open,read,write your_program
    • ltraceltrace -p < PID> ltrace your_program
  • 快速迭代
    • cargo-watchcargo install cargo-watch,运行:cargo watch -x run(文件变更自动构建并运行)
  • 日志与断言
    • 使用 log + env_logger 输出结构化日志,或在关键位置使用 assert! / assert_eq! 捕获不变量。

五 常见问题与排查

  • 断点无法命中或源码不匹配
    • 确认是 debug 构建;清理后重构建:cargo clean & & cargo build
    • 安装并更新 rust-src 组件,确保调试器可找到源码
  • 优化导致变量不可见或步进异常
    • 发布构建优化较多,优先在 debug 下调试;必要时减少优化级别进行对比
  • 崩溃无 backtrace
    • 设置环境变量:RUST_BACKTRACE=1 再运行;确保终端支持 UTF-8 输出
  • IDE 调试器无法启动
    • 检查 miDebuggerPath(如 /usr/bin/gdb)是否正确;确认已安装对应调试器与扩展。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Rust代码在Debian如何调试运行
本文地址: https://pptw.com/jishu/758157.html
Rust在Debian上的安全策略有哪些 Rust编译器在Debian怎么设置

游客 回复需填写必要信息