温馨提示×

怎样在ubuntu调试c加加

小樊
41
2026-10-19 23:32:57
栏目: 智能运维

在 Ubuntu 上调试 C++ 程序,常用方式有两种:使用 GDB 命令行调试 和 使用 IDE(如 VS Code / CLion)配合 GDB 调试。下面从基础到进阶给你一个完整指南。


一、准备:安装编译和调试工具

1. 安装 GCC / G++ 和 GDB

sudo apt update
sudo apt install build-essential gdb

检查是否安装成功:

g++ --version
gdb --version

二、编译带调试信息的程序(非常重要)

必须加 -g 参数,否则无法调试。

示例 main.cpp:

#include <iostream>
using namespace std;

int add(int a, int b) {
    return a + b;
}

int main() {
    int x = 10;
    int y = 20;
    int z = add(x, y);
    cout << z << endl;
    return 0;
}

编译:

g++ -g main.cpp -o main

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

1. 启动 GDB

gdb ./main

2. 常用 GDB 命令

命令 说明
run / r 运行程序
break 行号 在指定行设断点
break 函数名 在函数入口设断点
info break 查看断点
next / n 单步执行(不进入函数)
step / s 单步执行(进入函数)
print 变量 / p 变量 打印变量值
continue / c 继续执行
backtrace / bt 查看调用栈
quit 退出 GDB

示例:

break main
run
next
print x
step

四、常见调试场景

1. 程序崩溃(Segmentation fault)

gdb ./main
run

崩溃后:

bt

可查看是哪一行出错。

2. 程序异常退出

catch throw
run

五、使用 VS Code 调试(推荐)

1. 安装 VS Code

sudo snap install code --classic

2. 安装插件

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

3. 配置 tasks.json(编译)

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

4. 配置 launch.json(调试)

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

然后按 F5 启动调试。


六、进阶工具(可选)

  • Valgrind:内存泄漏检测
sudo apt install valgrind
valgrind ./main
  • GDB 图形界面
sudo apt install cgdb
cgdb ./main

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

  • 你是新手还是有一定基础
  • 用的是命令行还是 IDE
  • 有没有具体报错或崩溃问题

我可以给你更针对性的调试方案。

0 踩