ubuntu

Ubuntu C++如何调试程序错误

小樊
57
2025-10-06 15:33:28
栏目: 编程语言

Ubuntu C++调试程序错误的常用方法

1. 使用GDB(GNU调试器)调试

GDB是Ubuntu下调试C++程序的经典命令行工具,需配合编译时的-g选项使用,以下是详细步骤:

(1) 安装GDB

若未安装,通过终端执行以下命令安装:
sudo apt update && sudo apt install gdb

(2) 编译程序并生成调试信息

使用g++编译时添加-g参数,保留程序的调试符号(关键步骤,否则GDB无法定位源代码):
g++ -g -o my_program my_program.cpp
-g选项会将源代码、变量名、行号等信息嵌入可执行文件)

(3) 启动GDB并加载程序

终端输入以下命令启动GDB并加载编译后的程序:
gdb ./my_program

(4) 常用调试命令

(5) 示例调试流程

假设有以下简单程序(my_program.cpp),用于演示GDB调试:

#include <iostream>
void divide(int a, int b) {
    int result = a / b; // 可能触发除零错误
    std::cout << "Result: " << result << std::endl;
}
int main() {
    int x = 10, y = 0;
    divide(x, y); // 调用可能出错的函数
    return 0;
}

调试步骤

  1. 编译程序:g++ -g -o my_program my_program.cpp
  2. 启动GDB:gdb ./my_program
  3. divide函数入口设置断点:break divide
  4. 运行程序:run
  5. 程序在divide函数处暂停,查看变量b的值(print b),发现b=0(导致除零错误)。
  6. 退出GDB:quit

2. 使用Visual Studio Code(VS Code)调试

VS Code是图形化IDE,通过安装扩展和配置文件,可提供更直观的调试体验:

(1) 安装必要组件

(2) 配置调试环境

在项目根目录下创建.vscode文件夹(若不存在),并添加以下两个配置文件:

(3) 开始调试

  1. 打开需要调试的C++文件(如my_program.cpp)。
  2. 按下Ctrl+Shift+B(Windows/Linux)或Cmd+Shift+B(Mac),编译程序(执行tasks.json中的任务)。
  3. 按下F5键,启动调试会话(VS Code会自动加载launch.json配置,编译并启动GDB)。
  4. 使用VS Code的调试面板(左侧边栏)控制程序执行:
    • 点击继续(F5):继续执行程序。
    • 点击单步跳过(F10):相当于GDB的next命令。
    • 点击单步进入(F11):相当于GDB的step命令。
    • 点击查看变量(左侧变量面板):查看当前作用域的变量值。
    • 点击添加断点(行号左侧):设置断点(相当于GDB的break命令)。

3. 辅助调试工具

除GDB和VS Code外,以下工具可辅助定位特定类型的错误:

0
看了该问题的人还看了