温馨提示×

Linux C++怎么配置调试

小樊
42
2026-08-16 00:31:43
栏目: 编程语言

在 Linux 下用 C++ 调试,常见且推荐的方式是 GDB / GDB + IDE / VS Code。下面从最基础到常用方案一步步说明。


一、最基础:直接用 GDB(推荐先掌握)

1️⃣ 编译时必须加调试信息

g++ -g -O0 -o test test.cpp

参数说明:

  • -g:生成调试信息(必须)
  • -O0:关闭优化(否则变量可能被优化掉)

2️⃣ 启动 GDB

gdb ./test

常用命令:

命令 说明
run / r 运行程序
break main 在 main 设断点
break test.cpp:10 在第 10 行断点
next / n 下一行(不进入函数)
step / s 进入函数
print x 打印变量
backtrace / bt 查看调用栈
continue / c 继续执行
quit 退出

示例:

(gdb) break main
(gdb) run
(gdb) next
(gdb) print i

二、GDB 调试带参数的程序

gdb --args ./test arg1 arg2

或进入 gdb 后:

set args arg1 arg2
run

三、调试崩溃(core dump)

1️⃣ 开启 core dump

ulimit -c unlimited

2️⃣ 运行程序,生成 core

./test

生成类似:

core 或 core.12345

3️⃣ 用 gdb 分析

gdb ./test core

查看崩溃位置:

bt

四、VS Code 调试 C++(最常用、最友好)

1️⃣ 安装必要工具

sudo apt install g++ gdb

VS Code 插件:

  • C/C++(Microsoft)

2️⃣ 编译程序

g++ -g -O0 -o test test.cpp

3️⃣ 配置 launch.json

在 VS Code 中:

Run and Debug → create a launch.json

示例配置:

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "C++ Debug",
      "type": "cppdbg",
      "request": "launch",
      "program": "${workspaceFolder}/test",
      "args": [],
      "stopAtEntry": false,
      "cwd": "${workspaceFolder}",
      "environment": [],
      "externalConsole": false,
      "MIMode": "gdb",
      "setupCommands": [
        {
          "description": "Enable pretty-printing",
          "text": "-enable-pretty-printing",
          "ignoreFailures": true
        }
      ]
    }
  ]
}

然后按 F5 即可调试。


五、CMake 项目调试(推荐)

CMakeLists.txt

set(CMAKE_BUILD_TYPE Debug)

或:

cmake -DCMAKE_BUILD_TYPE=Debug ..

这样自动带 -g,无需手动加。


六、常见调试技巧

✅ 查看 STL 容器(vector / map)

set print pretty on
print vec

✅ 条件断点

break test.cpp:20 if i == 5

✅ 多线程调试

info threads
thread 2

七、调试方案选择建议

场景 推荐
学习 / 快速定位 GDB
日常开发 VS Code + GDB
大型项目 CMake + VS Code
线上崩溃 core dump + GDB

如果你愿意,可以告诉我:

  • 用的是 Ubuntu / CentOS / Arch
  • 是否 CMake 项目
  • 命令行还是 VS Code

我可以给你一份完全针对你环境的配置示例

0