网站首页 > 精选文章 正文
如果你的开发环境中不能使用visual studio 开发工具,那么使用vscode也能进行调试,比如在ubuntu和麒麟操作系统中
。
在 Visual Studio Code (VSCode) 中调试 C 语言代码,需要配合 编译器(如 GCC) 和 调试器(如 GDB) 使用。以下是 完整、详细、可操作的步骤,适用于 Windows(MinGW/MSYS2)、Linux 和 macOS。下面进行说明如下:
一、准备工作
1. 安装必要工具
Windows 用户:
- MinGW-w64 或 MSYS2
- 包含:gcc(编译器)、gdb(调试器)
- 推荐安装 MSYS2,然后安装:
pacman -S mingw-w64-x86_64-gcc mingw-w64-x86_64-gdb
Linux 用户(Ubuntu/Debian):
sudo apt update
sudo apt install build-essential gdb
macOS 用户:
xcode-select --install # 包含 clang, gdb 等
2. 安装 VSCode 插件
在 VSCode 扩展商店安装:
- C/C++(由 Microsoft 提供)
- C/C++ Extension Pack(推荐,包含调试支持)
二、项目结构示例
浅色版本
myproject/
├── src/
│ └── main.c
├── build/
└── .vscode/
├── launch.json
└── tasks.json
三、编译代码(生成带调试信息的可执行文件)
注意,自己用gcc编译时必须加 -g参数!
gcc -g src/main.c -o build/main.exe
- -g:生成调试信息(GDB 需要它)
- build/main.exe:输出可执行文件
四、配置 VSCode 调试文件
1. 创建.vscode/launch.json(启动配置)
按 Ctrl+Shift+P → 输入 Debug: Open launch.json → 选择 C++ (GDB/LLDB)
内容如下(以 Windows 为例):
{
"version": "0.2.0",
"configurations": [
{
"name": "调试 C 程序",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/build/main.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "C:\\msys64\\mingw64\\bin\\gdb.exe", // 修改为你的 gdb 路径
"setupCommands": [
{
"description": "为 printf 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "编译带调试信息"
}
]
}
注意:
- "miDebuggerPath":填写你的 gdb.exe 路径
- MSYS2: C:\msys64\mingw64\bin\gdb.exe
- MinGW: C:\MinGW\bin\gdb.exe
- "program":可执行文件路径
- "preLaunchTask":调试前自动编译
2. 创建.vscode/tasks.json(编译任务)
按 Ctrl+Shift+P → Tasks: Configure Task → Create tasks.json file from template → Others
{
"version": "2.0.0",
"tasks": [
{
"label": "编译带调试信息",
"type": "shell",
"command": "gcc",
"args": [
"-g",
"-Iinclude",
"-Ilib/include",
"src/main.c",
"lib/src/method1_1.c",
"lib/src/math_utils.c",
"-o",
"build/main.exe"
],
"group": {
"kind": "build",
"isDefault": true
},
"presentation": {
"echo": true,
"reveal": "always"
},
"problemMatcher": ["$gcc"]
}
]
}
- -g:必须加
- 列出所有 .c 文件,或用 lib/src/*.c
五、开始调试
步骤:
- 打开 main.c
- 在你想暂停的行号左侧点击,设置 断点(红点)
- 按 F5 或点击左侧 运行 图标 → 点击绿色三角
- 程序会在断点处暂停
调试截屏如下:
六、调试功能
操作 | 快捷键 | 说明 |
启动调试 | F5 | 运行到断点 |
单步跳过 | F10 | Step Over(进入下一行) |
单步进入 | F11 | Step Into(进入函数) |
单步跳出 | Shift+F11 | Step Out(跳出当前函数) |
继续运行 | F5 | 继续执行 |
停止调试 | Shift+F5 | 终止程序 |
七、查看变量和调用栈
- 左侧“运行和调试”面板:
- 显示当前变量值(局部变量、参数)
- 显示调用栈(Call Stack)
- 鼠标悬停在变量上,可查看当前值
八、常见问题解决
问题 1:gdb not found
- 确保 gdb 已安装
- 检查 launch.json 中 miDebuggerPath 路径是否正确
问题 2:No such file or directory(找不到可执行文件)
- 确保 tasks.json 成功编译出 build/main.exe
- 检查 launch.json 中 program 路径是否正确
问题 3:断点无效(灰色空心圆)
- 未加 -g 编译
- 可执行文件路径错误
- 源文件路径不匹配
九、完整调试流程(命令行方式)
你也可以不用 launch.json,直接:
# 1. 编译(带 -g)
gcc -g src/main.c -o build/main.exe
# 2. 启动 GDB 调试
gdb build/main.exe
在 GDB 中:
(gdb) break main # 在 main 函数设断点
(gdb) run # 运行
(gdb) next # 单步
(gdb) print avg1 # 打印变量
(gdb) continue # 继续
(gdb) quit # 退出
总结:VSCode 调试 C 的关键点
步骤 | 要求 |
1. 安装工具 | gcc , gdb |
2. 安装插件 | C/C++ 插件 |
3. 编译加 -g | gcc -g ... |
4. 配置 launch.json | 指定程序、gdb 路径 |
5. 配置 tasks.json | 自动编译 |
6. 按 F5 调试 | 设置断点,查看变量 |
一句话:
装好 GCC + GDB,写好 launch.json 和 tasks.json,编译加 -g,按 F5 就能调试 C 程序!
猜你喜欢
- 2025-09-13 Anthropic预告将推新Claude AI桌面应用
- 2025-09-13 VSCode调试python_vscode+python
- 2025-09-13 多学习才能多赚钱之:vscode怎么安装插件
- 2025-09-13 VS code使用入门(2)_vs code 入门
- 2025-09-13 Python 安装、Vscode IDE配置python开发环境
- 2025-09-13 Cursor 进阶使用教程_cursorloader
- 2025-09-13 用Hammerspoon控制Emacs的窗口_向日葵远程控制不显示窗口画面
- 2025-09-13 vscode 缩放字体快捷键设置_vscode字体放大快捷键
- 2025-09-13 译文:动图演示23个VScode快捷键_vscode快捷键运行代码
- 最近发表
-
- 使用VSCode来书写你的Jupyter Notebooks
- 在VSCode中使用uv管理Python项目_用vscode写python怎么运行
- Mac M2芯片 VSCode配置C#开发环境
- 配置vscode远程访问docker_vscode远程window开发
- 普通人 如何 利用 类似 ChatGPT AI 编写程序
- 在Vs code中使用sftp插件以及连接windows远程sftp协议部署指导
- 零代码编程:用kimichat合并一个文件夹下的多个文件
- Windows 10下使用编译并使用openCV
- 基于Springboot + vue3实现的汽车美容与保养网
- 超级右键iRightMouse--Mac强大工具
- 标签列表
-
- 向日葵无法连接服务器 (32)
- git.exe (33)
- vscode更新 (34)
- dev c (33)
- git ignore命令 (32)
- gitlab提交代码步骤 (37)
- java update (36)
- vue debug (34)
- vue blur (32)
- vscode导入vue项目 (33)
- vue chart (32)
- vue cms (32)
- 大雅数据库 (34)
- 技术迭代 (37)
- 同一局域网 (33)
- github拒绝连接 (33)
- vscode php插件 (32)
- vue注释快捷键 (32)
- linux ssr (33)
- 微端服务器 (35)
- 导航猫 (32)
- 获取当前时间年月日 (33)
- stp软件 (33)
- http下载文件 (33)
- linux bt下载 (33)