企业项目管理、ORK、研发管理与敏捷开发工具平台

网站首页 > 精选文章 正文

vscode中如何调试c语言写的代码_vscode 调试c代码

wudianyun 2025-09-13 10:45:02 精选文章 5 ℃

如果你的开发环境中不能使用visual studio 开发工具,那么使用vscode也能进行调试,比如在ubuntu和麒麟操作系统中

Visual Studio Code (VSCode) 中调试 C 语言代码,需要配合 编译器(如 GCC)调试器(如 GDB) 使用。以下是 完整、详细、可操作的步骤,适用于 Windows(MinGW/MSYS2)、Linux 和 macOS。下面进行说明如下:


一、准备工作

1. 安装必要工具

Windows 用户:

  • MinGW-w64MSYS2
    • 包含: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

五、开始调试

步骤:

  1. 打开 main.c
  2. 在你想暂停的行号左侧点击,设置 断点(红点)
  3. 按 F5 或点击左侧 运行 图标 → 点击绿色三角
  4. 程序会在断点处暂停

调试截屏如下:


六、调试功能

操作

快捷键

说明

启动调试

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 程序!

最近发表
标签列表