温馨提示×

怎样在debian上配置c++调试器

小樊
37
2026-01-02 15:24:42
栏目: 编程语言

在 Debian 上配置 C++ 调试器的完整步骤

一 安装必要工具

  • 更新索引并安装编译器与调试器:sudo apt update && sudo apt install -y build-essential gdb。这将一次性安装 gcc/g++make 以及 GDB。安装完成后可用 gcc --version、g++ --version、gdb --version 验证版本。

二 命令行使用 GDB 调试

  • 编译时务必加入调试信息:g++ -g -o hello hello.cpp(C 程序用 gcc -g)。优化级别建议先用 -O0(默认),避免 -O2/-O3 改变执行顺序导致调试困难。
  • 启动与基本操作:
    • 启动:gdb ./hello
    • 断点:break main 或 break hello.cpp:10
    • 运行:run(可带参数)
    • 单步:next(不进函数)/ step(进入函数)
    • 继续:continue
    • 打印:print var
    • 调用栈:backtrace(bt)
    • 退出:quit
  • 常用进阶:条件断点 break 127 if cnt==10;监视点 watch var;附加到进程 gdb -p ;查看寄存器 info registers。

三 在 VS Code 中配置一键编译与调试

  • 安装 VS Code 与扩展:sudo apt update && sudo apt install -y software-properties-common apt-transport-https curl;curl -sSL https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -;sudo add-apt-repository “deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main”;sudo apt update && sudo apt install -y code。在 VS Code 扩展市场安装 C/C++(Microsoft)。
  • 生成并配置构建任务 tasks.json(按 F1 → Tasks: Configure Task → Create tasks.json from template → Others,或直接新建 .vscode/tasks.json):
{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "g++ build active file",
      "type": "shell",
      "command": "g++",
      "args": ["-g", "${file}", "-o", "${fileDirname}/${fileBasenameNoExtension}"],
      "options": { "cwd": "${workspaceFolder}" },
      "problemMatcher": ["$gcc"],
      "group": { "kind": "build", "isDefault": true }
    }
  ]
}
  • 生成并配置调试启动 launch.json(按 F5 → create a launch.json file → 选择 C++ (GDB/LLDB)):
{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "g++ build and debug active file",
      "type": "cppdbg",
      "request": "launch",
      "program": "${fileDirname}/${fileBasenameNoExtension}",
      "args": [],
      "stopAtEntry": false,
      "cwd": "${workspaceFolder}",
      "environment": [],
      "externalConsole": false,
      "MIMode": "gdb",
      "miDebuggerPath": "/usr/bin/gdb",
      "setupCommands": [
        { "description": "Enable pretty-printing", "text": "-enable-pretty-printing", "ignoreFailures": true }
      ],
      "preLaunchTask": "g++ build active file"
    }
  ]
}
  • F5 即可构建并启动调试;若提示找不到调试器或源文件,确认 gdb 已安装且路径为 /usr/bin/gdb,必要时安装开发库:sudo apt install -y libc6-dev libstdc++6-dev

四 常见问题与排查

  • 断点无法命中或变量不可见:编译未加 -g 或使用了 -O2/-O3;请改为 -g -O0 重新编译。
  • 提示缺少调试信息或找不到头文件:安装 libc6-devlibstdc++6-dev 等开发包。
  • 无法启动调试或找不到 gdb:确认已安装 gdb(sudo apt install -y gdb),并在 launch.json 中正确设置 miDebuggerPath: “/usr/bin/gdb”
  • 需要调试已运行进程:使用 gdb -p 或 gdb attach 附加;退出前可 detach 再 quit。

0