如何在Debian中调试Rust程序
在Debian系统中调试Rust程序,需先通过官方脚本安装Rust,再安装gdb和lldb调试器。编译时默认生成调试符号,若使用release模式需在Cargo.toml中配置debug=true。启动调试器后可设置断点、执行next/step/continue等命令,并通过print或backtrace查看变量与调用栈。
在Debian系统中调试Rust程序,其实比你想象的要简单。只要把环境搭好、工具装对,剩下的就是一些常规操作了。下面把这套流程拆解开,一步步来看。

首先,得确保Rust本身已经装上了。如果还没装,官方推荐的方式是用一条脚本搞定:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
等它跑完,记得重启一下终端,或者手动执行 source $HOME/.cargo/env 让环境变量生效。
接下来是调试工具。Debian上最常用的两个调试器是 gdb 和 lldb,安装起来也很直接:
sudo apt update
sudo apt install gdb lldb
如果你想用LLDB作为默认调试器(比如你更喜欢它的命令风格),可以用 sudo update-alternatives --config lldb 来设置优先级。
调试的前提是有一个Rust项目。新建项目用 cargo new my_project 然后 cd my_project 就行;如果你已经有现成的项目,直接进入目录。
关键的一步:编译时要带上调试信息。默认情况下 cargo build 就会生成带调试符号的二进制文件,这没问题。但如果你习惯用 --release 做优化编译,默认会去掉调试信息。想要在发布模式下也保留调试符号,需要在 Cargo.toml 里加一句:
[profile.release]
debug = true
准备工作做完,就可以启动调试器了。以 gdb 为例:
gdb target/debug/my_project
或者用 lldb:
lldb target/debug/my_project
你会看到调试器的命令行界面,接下来就是常规的调试流程了。先设置断点,比如在 main 函数处停下来:
- 在GDB里:
(gdb) break main - 在LLDB里:
(lldb) breakpoint set --name main
然后运行程序:
- GDB:
(gdb) run - LLDB:
(lldb) run
当程序在断点处停住之后,你就能自由地检查状态了。常用命令在GDB和LLDB里大同小异:
GDB常用命令:
next或n:执行下一行,不进入函数。step或s:执行下一行,进入函数内部。continue或c:继续运行直到下一个断点。print variable_name或p variable_name:打印变量值。backtrace或bt:查看调用栈。
LLDB常用命令:
next或n:执行下一行,不进入函数。step或s:执行下一行,进入函数内部。continue或c:继续运行直到下一个断点。frame variable或fv:打印当前帧的局部变量。bt:显示调用栈。
调试结束后,用 quit 命令退出调试器即可。
这些基础操作覆盖了大多数场景。实际调试中你可能还会用到条件断点、watchpoint、内存查看等高级功能,那些就需要再翻翻 gdb 或 lldb 的文档了。不过,先把这套基础流程跑通,日常的定位问题基本够用。


































