温馨提示×

ubuntu怎样调试c++程序

小樊
36
2026-09-26 14:40:30
栏目: 编程语言

在 Ubuntu 上调试 C++ 程序,常见且推荐的方式是使用 g++/gcc + gdb,也可以配合 IDE 或可视化工具。下面从基础到进阶给你一个完整说明。


一、准备:编译时加上调试信息

调试的前提是编译时生成调试符号。

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

说明:

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

二、使用 GDB 调试(最常用)

1. 启动 GDB

gdb ./main

进入 GDB 后常见操作:

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

2. 调试崩溃(Segmentation fault)

gdb ./main
(gdb) run

崩溃后:

(gdb) backtrace

可定位是哪一行导致段错误。


三、命令行更方便的方式

1. 使用 cgdb(带代码窗口)

sudo apt install cgdb
cgdb ./main

比 gdb 更适合初学者。


四、使用 Visual Studio Code(推荐)

1. 安装工具

sudo apt install g++ gdb

VS Code 安装:

  • C/C++ 插件
  • CMake Tools(可选)

2. 配置调试(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",
      "preLaunchTask": "build"
    }
  ]
}

3. 设置断点 → F5 调试


五、使用 CMake + 调试

cmake -DCMAKE_BUILD_TYPE=Debug .
make
gdb ./your_program

CMakeLists.txt 示例:

set(CMAKE_BUILD_TYPE Debug)

六、常见调试技巧

  • 打印日志(快速但不优雅)
  • assert(condition);
  • 使用 valgrind 查内存问题:
sudo apt install valgrind
valgrind ./main

七、总结推荐

场景 推荐方式
命令行调试 gdb / cgdb
图形化 VS Code
内存问题 valgrind
工程化 CMake + gdb

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

  • 你用的是 命令行还是 IDE
  • 是 段错误、逻辑错误还是性能问题

我可以直接给你对应的调试步骤。

0 踩