vscode调试多C++文件项目

由于之前都是在vs上调试c++项目,现在觉得vs很重,而且对vim用户不太友好,所以就想着都用vsc来做开发,首先来解决调试问题。
没有用makefile管理

1. 安装必要的扩展

  • C/C++:微软提供的 C/C++ 扩展,支持语法高亮、代码补全和调试功能。
  • C/C++ Runner(C/C++ Runner by franneck94):有助于在项目中管理编译和调试过程。

2. 创建和配置多文件项目

首先,需要在 VSCode 中创建一个包含多个源文件的 C/C++ 项目。有以下结构:

project/
├── main.c
├── utils.c
├── utils.h
└── .vscode/
    ├── tasks.json
    └── launch.json

3. 配置编译任务(tasks.json)

在多文件项目中,你需要配置 tasks.json 来指定如何编译所有源文件。

在 .vscode 文件夹下创建或打开 tasks.json 文件。
配置任务来编译多文件项目:

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "build all",
            "type": "shell",
            "command": "gcc",
            "args": [
                "main.c",
                "utils.c",
                "-o",
                "output.exe",  // 生成可执行文件的名称
                "-g"            // 生成调试信息
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "problemMatcher": ["$gcc"],
            "detail": "编译多个源文件"
        }
    ]
}

label:任务的名称,可以自定义。
command:使用 gcc 来编译 C 文件。
args:指定要编译的所有源文件,以及输出文件的名称。
-g:用于生成调试符号,以便于调试。
可以使用 Ctrl+Shift+B 快捷键来运行这个编译任务。一定要注意先编译出可执行文件

4. 配置调试(launch.json)

为了在调试时能够指定编译生成的可执行文件,需要创建或修改 launch.json 文件。

在 .vscode 文件夹下创建或打开 launch.json 文件。
配置调试启动项:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "GDB Debugging",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/output.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "build all",
            "miDebuggerPath": "/usr/bin/gdb", // 或 Windows 上的 gdb.exe 路径
            "internalConsoleOptions": "openOnSessionStart"
        }
    ]
}

name:调试配置的名称。
type:选择 cppdbg 作为调试类型。
program:可执行文件的路径(例如 ${workspaceFolder}/output.exe)。
cwd:当前工作目录,通常设置为 ${workspaceFolder}。
preLaunchTask:指定编译任务,在调试前自动运行编译。
miDebuggerPath:指定 GDB 的路径。对于 Windows 上,可以安装 MinGW,并使用 MinGW 附带的 GDB。

5. 启动调试

编译项目:按 Ctrl+Shift+B 来触发编译任务,确保所有源文件正确编译并链接在一起。
启动调试:
按 F5 或者点击调试按钮,选择 GDB Debugging 配置进行调试。

VSCode 会自动运行 tasks.json 中定义的任务来编译代码,然后启动调试器。

6. 设置断点

在调试过程中,可以在代码中点击左侧行号区域来设置断点,也可以通过在调试控制台中查看变量、栈等信息来更好地理解程序执行情况。

小结

tasks.json 用于配置编译多个文件,生成可调试的可执行文件。
launch.json 用于配置调试选项,包括可执行文件路径、调试器等。
使用 F5 启动调试前,确保编译任务成功执行。

posted @ 2024-11-10 00:23  LIalan  阅读(854)  评论(0)    收藏  举报