温馨提示×

ubuntu下c++怎么调试

小樊
43
2026-09-20 16:41:22
栏目: 编程语言

在 Ubuntu 下调试 C++ 程序,常见、有效的方式主要有以下几种,按使用频率从高到低介绍:


一、使用 GDB(最基础、最常用)

1. 编译时加调试信息

g++ -g -O0 main.cpp -o main
  • -g:生成调试信息
  • -O0:关闭优化(否则变量可能被优化掉)

2. 启动 GDB

gdb ./main

3. 常用 GDB 命令

run          # 运行程序
break main   # 在 main 函数打断点
break file.cpp:20  # 在指定行打断点
next         # 单步执行(不进入函数)
step         # 单步执行(进入函数)
print x      # 打印变量
backtrace    # 查看调用栈
continue     # 继续执行
quit         # 退出

示例:

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

二、使用 CGDB(GDB 的图形化终端版)

比 GDB 更友好:

sudo apt install cgdb
cgdb ./main
  • 上方显示源码
  • 下方是 GDB 命令

三、使用 VS Code(推荐,体验最好)

1. 安装

sudo apt install code

2. 安装插件

  • C/C++
  • C/C++ Extension Pack

3. 配置调试

  1. 打开项目
  2. 按 Ctrl+Shift+D
  3. 点击 “create a launch.json file”
  4. 选择 g++ build and debug

示例 launch.json:

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "C++ Debug",
      "type": "cppdbg",
      "request": "launch",
      "program": "${workspaceFolder}/main",
      "args": [],
      "stopAtEntry": false,
      "cwd": "${workspaceFolder}",
      "environment": [],
      "externalConsole": false,
      "MIMode": "gdb"
    }
  ]
}
  1. 编译:
g++ -g main.cpp -o main
  1. 按 F5 开始调试

四、使用 valgrind(内存错误调试)

用于检测:

  • 内存泄漏
  • 非法访问
sudo apt install valgrind
valgrind ./main

更详细:

valgrind --leak-check=full ./main

五、打印日志(最简单)

#include <iostream>
std::cerr << "x = " << x << std::endl;

适合:

  • 小型程序
  • 快速定位问题

六、常见调试建议

  • 编译时 一定要加 -g
  • 不要用 -O2/-O3 调试
  • 段错误先看 backtrace
  • 多线程问题用 thread apply all bt

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

  • 是 命令行 / VS Code / CLion
  • 是 段错误 / 逻辑错误 / 多线程问题

我可以给你更具体的调试方案。

0 踩