温馨提示×

C++代码在Ubuntu上如何进行调试

小樊
41
2025-11-05 08:19:35
栏目: 编程语言

C++代码在Ubuntu上的调试方法

1. 使用GDB(GNU调试器)——命令行调试

GDB是Ubuntu下最常用的命令行调试工具,适合习惯终端操作的用户。

  • 安装GDB:若未安装,通过终端运行sudo apt update && sudo apt install gdb安装。
  • 编译带调试信息的代码:使用-g选项编译C++文件,例如g++ -g main.cpp -o my_program-g会将源代码信息嵌入可执行文件,是GDB调试的必要条件)。
  • 启动GDB:在终端输入gdb ./my_program,加载可执行文件。
  • 常用调试命令
    • break <位置>:设置断点(如break mainmain函数开头断点,break main.cpp:10在第10行断点);
    • run(或r):启动程序,运行至断点处暂停;
    • next(或n):单步执行,不进入函数内部;
    • step(或s):单步执行,进入函数内部;
    • print <变量名>(或p):打印变量当前值(如print count);
    • backtrace(或bt):查看函数调用栈,定位错误发生的位置;
    • continue(或c):继续执行程序,直到下一个断点或程序结束;
    • quit:退出GDB。

2. 使用Visual Studio Code(VS Code)——图形化调试

VS Code是轻量级编辑器,通过扩展支持C++调试,适合偏好图形界面的用户。

  • 安装准备:从官网下载安装VS Code,打开扩展市场,搜索并安装“C/C++”(Microsoft官方扩展,提供C++语言支持)。
  • 配置调试环境
    • 在项目根目录创建.vscode文件夹;
    • 新建tasks.json文件(用于定义编译任务),内容参考:
      {
        "version": "0.2.0",
        "configurations": [
          {
            "label": "g++ build active file",
            "type": "shell",
            "command": "g++",
            "args": ["-g", "${file}", "-o", "${fileDirname}/${fileBasenameNoExtension}"],
            "group": {"kind": "build", "isDefault": true},
            "problemMatcher": ["$gcc"]
          }
        ]
      }
      
    • 新建launch.json文件(用于配置调试参数),内容参考:
      {
        "version": "0.2.0",
        "configurations": [
          {
            "name": "g++ build and debug active file",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}/${fileBasenameNoExtension}",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerPath": "/usr/bin/gdb",
            "setupCommands": [{"description": "Enable pretty-printing", "text": "-enable-pretty-printing", "ignoreFailures": true}],
            "preLaunchTask": "g++ build active file"
          }
        ]
      }
      
  • 调试操作:打开C++源文件,在代码行号左侧点击设置断点;按下F5键启动调试,程序会在断点处暂停,通过顶部调试工具栏进行单步执行、继续、查看变量等操作。

3. 其他调试工具

  • CLion:JetBrains推出的专业C++ IDE,内置强大的调试功能(如智能断点、变量监视、内存视图),适合大型项目开发。安装后直接导入项目,点击调试按钮即可启动调试。
  • Valgrind:内存调试工具,用于检测内存泄漏、非法访问等问题。安装后运行valgrind --leak-check=full ./my_program,会输出内存错误详情(如未释放的内存块)。
  • strace:系统调用追踪工具,用于分析程序与操作系统的交互(如文件操作、网络请求)。运行strace ./my_program,可查看程序执行过程中的所有系统调用。

0