温馨提示×

Ubuntu C++ 调试怎么设置

小樊
35
2026-10-11 06:37:53
栏目: 编程语言

在 Ubuntu 上调试 C++ 程序,常见做法是 用 GDB(命令行) 或 VS Code + GDB(图形化)。下面从「编译 → 调试 → 常用工具」一步步说明。


一、编译时开启调试信息(非常重要)

调试前,编译必须加 -g:

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

说明:

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

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

1. 启动 GDB

gdb ./main

2. 常用 GDB 命令

功能 命令
设置断点 break main 或 b 10
运行 run / r
单步(进入函数) step / s
单步(不进函数) next / n
查看变量 print x / p x
查看调用栈 backtrace / bt
继续运行 continue / c
退出 quit

示例:

(gdb) b main
(gdb) r
(gdb) n
(gdb) p a

三、VS Code 调试(推荐,图形化)

1. 安装必要工具

sudo apt update
sudo apt install g++ gdb

VS Code 插件:

  • C/C++
  • CMake Tools(如果用 CMake)

2. 配置 tasks.json(编译)

.vscode/tasks.json:

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

3. 配置 launch.json(调试)

.vscode/launch.json:

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

然后按 F5 即可调试。


四、段错误(Segmentation fault)调试技巧

方法 1:GDB 直接抓

gdb ./main
run
bt

方法 2:Core dump

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

五、常用辅助工具

工具 用途
valgrind 内存泄漏 / 越界
asan 地址 sanitizer
gdb 基础调试

示例(AddressSanitizer):

g++ -g -fsanitize=address main.cpp -o main
./main

六、如果你用 CMake

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

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

  • 用的是 命令行 / VS Code / CLion
  • 是否是 CMake 项目
  • 遇到的是 段错误 / 变量不对 / 多线程问题

我可以给你更具体的配置。

0 踩