当前位置: 首页 > article >正文

Visual Studio Code (VSCode) 使用 GDB 进行调试

在 Visual Studio Code (VSCode) 中使用 GDB 进行调试,通常用于调试 C/C++ 程序。以下是配置和使用 GDB 调试的步骤:

1. 安装必要工具

确保已安装以下工具:

  • GCC/G++:用于编译 C/C++ 代码。
  • GDB:GNU 调试器。
  • VSCode:代码编辑器。
  • C/C++ 扩展:VSCode 的 C/C++ 扩展。
安装 GCC/G++ 和 GDB

在 Linux 上,可以通过包管理器安装:

sudo apt-get update
sudo apt-get install build-essential gdb

在 Windows 上,可以使用 MinGW 或 MSYS2 安装 GCC 和 GDB。

安装 VSCode 和 C/C++ 扩展
  1. 下载并安装 VSCode:VSCode 官网。
  2. 打开 VSCode,安装 C/C++ 扩展:
    • 打开扩展视图(Ctrl+Shift+X)。
    • 搜索 “C/C++”,安装 Microsoft 提供的 C/C++ 扩展。

2. 配置 launch.json

  1. 打开项目文件夹。
  2. 点击左侧的调试图标(或按 Ctrl+Shift+D)。
  3. 点击“创建一个 launch.json 文件”。
  4. 选择 “C++ (GDB/LLDB)”。
  5. 选择默认配置或自定义配置。

生成的 launch.json 文件示例如下:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "GDB 调试",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/a.out",  // 可执行文件路径
            "args": [],  // 程序参数
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "build",  // 调试前运行的任务
            "miDebuggerPath": "/usr/bin/gdb",  // GDB 路径
            "logging": {
                "trace": true,
                "traceResponse": true,
                "engineLogging": true
            }
        }
    ]
}

3. 配置 tasks.json

tasks.json 用于定义构建任务。示例:

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "build",
            "type": "shell",
            "command": "g++",
            "args": [
                "-g",
                "${file}",
                "-o",
                "${workspaceFolder}/a.out"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "problemMatcher": [
                "$gcc"
            ],
            "detail": "编译器: /usr/bin/g++"
        }
    ]
}

4. 开始调试

  1. 打开要调试的 C/C++ 文件。
  2. 按 F5 或点击调试图标中的绿色播放按钮启动调试。
  3. 程序将在断点处暂停,可以使用调试控制台查看变量、调用栈等信息。

5. 常用调试功能

  • 设置断点:点击行号左侧的空白处。
  • 单步执行:F10(跳过)或 F11(进入)。
  • 查看变量:在调试侧边栏查看,或悬停在代码上。
  • 调用栈:查看函数调用栈。
  • 监视表达式:在“监视”窗口中添加表达式。

6. 调试多文件项目

对于多文件项目,确保 tasks.json 中的构建命令包含所有源文件,例如:

"args": [
    "-g",
    "${workspaceFolder}/*.cpp",
    "-o",
    "${workspaceFolder}/a.out"
]

7. 调试核心转储

如果需要调试核心转储文件,可以在 launch.json 中添加:

"coreDumpPath": "${workspaceFolder}/core"

总结

通过以上步骤,你可以在 VSCode 中使用 GDB 调试 C/C++ 程序。确保正确配置 launch.jsontasks.json,并安装必要的工具和扩展。


http://www.kler.cn/a/573461.html

相关文章:

  • 【前端】【vue-i8n】【element】Element 框架国际化配置指南:从 element-ui 到 element-plus
  • Diffusion模型中时间t嵌入的方法
  • MapReduce 深度解析:原理与案例实战
  • 7.RabbitMQ延时交换机
  • 分布式日志和责任链路
  • FFmpeg-chapter7-使用 FFmpeg 解码视频(原理篇)
  • Day02-云服务器+小皮phpstudy一键部署建站
  • STM32中的ADC
  • 带你从入门到精通——自然语言处理(五. 自注意力机制和transformer的输入部分)
  • Element Plus中的树组件的具体用法(持续更新!)
  • Logback:高性能日志框架完全指南
  • 微信小程序接入deepseek
  • 【文生图】windows 部署stable-diffusion-webui
  • 数组中的逆序对(C++)
  • BasicToolNode(tools=[search_tool, lookup_policy, query_sqldb])的内部执行逻辑
  • Android ChatOn-v1.66.536-598-[构建于ChatGPT和GPT-4o之上]
  • 大模型巅峰对决:DeepSeek vs GPT-4/Claude/PaLM-2 全面对比与核心差异揭秘
  • FastExcel/EasyExcel简介以及源码解析
  • 张岳教授:语言模型推理与泛化研究 | ICLR 2025 特邀报告与团队专场
  • 18类创新平台培育入库!长沙经开区2025年各类科技创新平台培育申报流程时间材料及申报条件