温馨提示×

如何在ubuntu调试c++代码

小樊
49
2026-09-05 11:44:08
栏目: 编程语言

在 Ubuntu 上调试 C++ 代码,常见、有效的方式主要有以下几种。下面从基础准备 → 常用工具 → 实际示例一步步说明。


一、基础准备

1. 安装编译器和调试器

通常使用 g++ + gdb:

sudo apt update
sudo apt install g++ gdb build-essential

检查版本:

g++ --version
gdb --version

2. 编译时开启调试信息(非常重要)

调试必须在编译时加入 -g 参数:

g++ -g main.cpp -o main

⚠️ 不要同时加 -O2 等优化选项,否则调试时变量可能“消失”。


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

1. 启动 GDB

gdb ./main

2. 常用 GDB 命令

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

3. 示例

// main.cpp
#include <iostream>
using namespace std;

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

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

调试过程:

g++ -g main.cpp -o main
gdb ./main
(gdb) break main
(gdb) run
(gdb) next
(gdb) print x
(gdb) step
(gdb) backtrace

三、使用 VS Code 调试(推荐新手)

1. 安装

sudo apt install code

安装扩展:

  • C/C++
  • C/C++ Clang Command Adapter(可选)

2. 配置调试

  1. 打开项目文件夹
  2. Ctrl+Shift+D → 创建 launch.json
  3. 选择 C++ (GDB/LLDB)

示例 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. 按 F5 开始调试(断点、变量监视都很直观)

四、使用 CMake + 调试(工程化项目)

CMakeLists.txt

cmake_minimum_required(VERSION 3.10)
project(demo)

set(CMAKE_BUILD_TYPE Debug)
add_executable(main main.cpp)

编译与调试:

mkdir build && cd build
cmake ..
make
gdb ./main

五、常见调试技巧

  • ✅ 段错误(Segmentation fault)
    gdb ./main
    run
    bt
    
  • ✅ 打印日志辅助
    std::cerr << "x = " << x << std::endl;
    
  • ✅ 使用 valgrind 查内存问题
    sudo apt install valgrind
    valgrind ./main
    

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

  • 你是新手还是进阶
  • 用的是命令行还是 IDE
  • 遇到的是具体什么错误

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

0 踩