要在 Debian 上调试 C++ 程序,最经典且实用的工具组合就是 GDB(GNU 调试器)和 Visual Studio Code。前者是命令行老牌利器,后者给调试过程加了个图形化的操作界面。下面把整个流程梳理一遍,从安装到上手,看看每一步到底怎么做。

安装 GDB
打开终端,先更新一下包列表,然后直接安装:sudo apt-get update sudo apt-get install gdb装完之后,用
gdb --version验证一下,看到版本号就说明好了。给程序加上调试信息
平常编译 C++ 代码时,加一个-g参数就能把符号表等信息带进可执行文件。举个例子,假设源代码是main.cpp:g++ -g -o main main.cpp没有这个
-g,GDB 就没办法帮你定位到具体的行号和变量名,记住这一步不能省。用 GDB 开始调试
终端里输入gdb main(把main换成你自己可执行文件的名字),就进入调试界面了。下面列几个最常用的命令:break main— 在main函数入口设断点。run— 启动程序,遇到断点就会停下。next— 单步执行,不进入函数内部(相当于“跳过”)。step— 单步执行,会钻进函数内部。continue— 继续运行,直到下一个断点。print variable_name— 查看某个变量的当前值。backtrace— 看函数调用栈,排查崩溃位置特别好用。quit— 退出 GDB。
当然,GDB 的命令远不止这些,但上面这几个已经能覆盖大部分日常调试场景了。
用 Visual Studio Code 调试(图形化版本)
如果你更喜欢在编辑器里点按钮操作,VSCode 是不错的选择。前提是已经装好了 VSCode 以及 C++ 扩展。配置步骤大致如下:- 打开你的 C++ 项目文件夹。
- 左侧边栏点那个齿轮图标(“运行和调试”设置),选择环境为 “C++ (GDB/LLDB)”。
- 这时候 VSCode 会自动生成一个
.vscode文件夹,里面有一个launch.json文件。把内容改成下面这样(注意把program里的可执行文件名换成你自己的):
{ "version": "0.2.0", "configurations": [ { "name": "(gdb) Launch", "type": "cppdbg", "request": "launch", "program": "${workspaceFolder}/main", "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": "build" } ] } - 配置完成后,点击左侧边栏的“运行和调试”图标(一个三角形加一个虫子),再点绿色的“运行”按钮,或者直接按 F5,就进入调试了。
- 接下来你就能在编辑器里直接设断点、单步执行、查看变量值,所有操作都有图形界面反馈。调试过程中,“调试控制台”和“终端”窗口会输出实时信息,方便你排查问题。
这两种方式各有所长:GDB 轻量、远程调试方便;VSCode 直观、适合新手。无论选哪一种,核心步骤都是先编译出带调试信息的可执行文件,然后设置断点、单步跟踪。掌握了这几个基本操作,日常开发中的定位错误、分析逻辑基本够用了。