在 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++ 扩展
- 下载并安装 VSCode:VSCode 官网。
- 打开 VSCode,安装 C/C++ 扩展:
- 打开扩展视图(Ctrl+Shift+X)。
- 搜索 “C/C++”,安装 Microsoft 提供的 C/C++ 扩展。
2. 配置 launch.json
- 打开项目文件夹。
- 点击左侧的调试图标(或按 Ctrl+Shift+D)。
- 点击“创建一个 launch.json 文件”。
- 选择 “C++ (GDB/LLDB)”。
- 选择默认配置或自定义配置。
生成的 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. 开始调试
- 打开要调试的 C/C++ 文件。
- 按 F5 或点击调试图标中的绿色播放按钮启动调试。
- 程序将在断点处暂停,可以使用调试控制台查看变量、调用栈等信息。
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.json
和 tasks.json
,并安装必要的工具和扩展。