温馨提示×

怎样调试Ubuntu C++代码

小樊
49
2026-10-02 10:38:53
栏目: 编程语言

在 Ubuntu 上调试 C++ 代码,通常分为编译阶段和调试阶段。下面给你一套常用、实用的做法,从入门到进阶都有。


一、基本准备

1. 安装编译器和调试器

sudo apt update
sudo apt install build-essential gdb
  • g++:C++ 编译器
  • gdb:调试器
  • make:构建工具

二、编译(关键一步)

✅ 必须加调试信息

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

参数说明:

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

❌ 不要这样:

g++ main.cpp -o main

三、使用 GDB 调试(命令行)

1. 启动调试

gdb ./main

2. 常用 GDB 命令

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

示例

break main
run
next
print a
backtrace

四、段错误(Segmentation fault)调试

方法 1:GDB 直接抓

gdb ./main
run

崩溃后:

backtrace

方法 2:生成 core 文件

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

五、使用 VS Code(推荐新手)

1. 安装

sudo apt install code

2. 安装插件

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

3. 配置 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"
    }
  ]
}

按 F5 即可图形化调试。


六、打印日志调试(简单粗暴)

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

适合:

  • 快速定位问题
  • 多线程 / 实时系统

七、常见问题排查

1. 变量显示 <optimized out>

✅ 解决:

g++ -g -O0

2. 找不到头文件

sudo apt install libxxx-dev

3. 多线程调试

info threads
thread 2

八、进阶工具(可选)

  • valgrind:内存泄漏
  • sanitizer:
g++ -fsanitize=address -g main.cpp

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

  • 是新手还是有一定基础
  • 用 命令行还是 VS Code
  • 具体 报什么错

我可以直接帮你写调试示例。

0 踩