温馨提示×

linux c++配置如何调试

小樊
40
2026-09-17 06:07:37
栏目: 编程语言

下面按常见场景给你一套 Linux 下 C++ 调试配置方案,从「编译 → 调试器 → IDE/编辑器 → 常用技巧」循序渐进。


一、编译阶段(最关键)

1. 必须加调试信息

g++ -g -O0 main.cpp -o main

说明:

  • -g:生成调试符号(必须)
  • -O0:关闭优化(否则变量可能被优化掉,断点不准)

2. CMake 项目

set(CMAKE_BUILD_TYPE Debug)
set(CMAKE_CXX_FLAGS_DEBUG "-g -O0")

或:

cmake -DCMAKE_BUILD_TYPE=Debug ..

二、使用 GDB 调试(最基础)

1. 启动

gdb ./main

2. 常用命令

break main.cpp:10     # 断点
run                   # 运行
next                  # 单步(不进函数)
step                  # 单步(进函数)
print x               # 打印变量
backtrace             # 查看调用栈
continue              # 继续运行
quit                  # 退出

3. 调试崩溃(core dump)

ulimit -c unlimited
./main
gdb ./main core

三、VS Code 调试(推荐)

1. 安装

  • C/C++ 插件
  • GDB(系统已带)

2. .vscode/tasks.json(编译)

{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "build",
      "type": "shell",
      "command": "g++ -g -O0 main.cpp -o main"
    }
  ]
}

3. .vscode/launch.json(调试)

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "C++ Debug",
      "type": "cppdbg",
      "request": "launch",
      "program": "${workspaceFolder}/main",
      "args": [],
      "stopAtEntry": false,
      "cwd": "${workspaceFolder}",
      "miDebuggerPath": "/usr/bin/gdb"
    }
  ]
}

四、CLion(最省心)

  • 新建 C++ 项目
  • 默认就是 Debug 模式
  • 直接点 Debug 按钮

无需手动配置 GDB


五、多线程 / 段错误调试技巧

1. 查看所有线程

info threads
thread 2

2. 段错误定位

run
bt

3. 打印 STL 容器

print vec

(GDB 新版本支持较好)


六、日志调试(不能 debug 时)

#include <iostream>
#define LOG(x) std::cout << #x << " = " << x << std::endl;

或:

strace ./main

七、常见问题

❌ 断点不生效
✅ 忘了 -g 或开了 -O2

❌ 变量显示 <optimized out>
✅ 使用 -O0

❌ GDB 看不懂 C++ 名字
✅ 使用 g++ 而非 gcc


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

  • 用的是 g++ / clang / CMake
  • 命令行 / VS Code / CLion
  • 是 段错误 / 多线程 / 性能问题

我可以直接给你对应配置模板。

0 踩