VSCode 多工程联合调试

在 Visual Studio Code (VSCode) 中联合调试两个 C++ 工程,其中一个是进程,另一个是依赖库,你可以通过设置调试配置文件和使用 launch.json 来实现。

假设你的工程结构如下:

  • ProjectA: 包含主进程(可执行文件)。
  • ProjectB: 包含库文件,ProjectA 依赖它。

步骤 1:配置 tasks.json

首先,确保你能够编译这两个项目。你需要在 tasks.json 文件中设置编译任务。

例如,对于 ProjectAProjectB,你可以有类似的配置:

json 复制代码
{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "build ProjectA",
      "type": "shell",
      "command": "g++",
      "args": [
        "-g", "projectA_main.cpp", "-o", "projectA_executable", "-L./projectB", "-lprojectB"
      ],
      "group": {
        "kind": "build",
        "isDefault": true
      }
    },
    {
      "label": "build ProjectB",
      "type": "shell",
      "command": "g++",
      "args": [
        "-g", "projectB_lib.cpp", "-o", "libprojectB.a", "-c"
      ],
      "group": {
        "kind": "build",
        "isDefault": true
      }
    }
  ]
}

步骤 2:配置 launch.json

接下来,配置 launch.json 来设置联合调试。你需要为 ProjectA(进程)创建调试配置,并确保它在启动时能够加载 ProjectB 的库。

json 复制代码
{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Debug ProjectA with ProjectB",
      "type": "cppdbg",
      "request": "launch",
      "program": "${workspaceFolder}/projectA_executable", // 指向 ProjectA 的可执行文件
      "args": [],
      "stopAtEntry": false,
      "cwd": "${workspaceFolder}",
      "environment": [],
      "externalConsole": false,
      "MIMode": "gdb",
      "setupCommands": [
        {
          "description": "Enable pretty-printing for gdb",
          "text": "-enable-pretty-printing",
          "ignoreFailures": true
        }
      ],
      "miDebuggerPath": "/usr/bin/gdb",
      "preLaunchTask": "build ProjectA",  // 编译 ProjectA
      "postDebugTask": "",
      "logging": {
        "moduleLoad": false,
        "programOutput": true,
        "engineLogging": false,
        "exceptions": true
      },
      "windows": {
        "MIMode": "gdb",
        "miDebuggerPath": "C:/path/to/gdb.exe"
      }
    }
  ]
}

步骤 3:设置调试依赖库

如果 ProjectA 依赖于 ProjectB 库,你可以通过 launch.json 设置 LD_LIBRARY_PATH 或其他环境变量来确保调试时可以找到 ProjectB 的库。

例如,在 launch.json 中设置 environment 字段:

json 复制代码
"environment": [
  {
    "name": "LD_LIBRARY_PATH",
    "value": "${workspaceFolder}/projectB"
  }
]

步骤 4:启动联合调试

  1. 在 VSCode 中选择调试配置 "Debug ProjectA with ProjectB"。
  2. 使用 F5 或点击调试按钮开始调试。VSCode 会自动构建并启动 ProjectA,并且会连接到 ProjectB 的库,开始联合调试。

这样,你就可以同时调试 ProjectA 的进程和 ProjectB 的库了。

相关推荐
开发者联盟league16 小时前
vscode接入deepseek
vscode·deepseek
小小放舟、19 小时前
VS Code Code Runner 中文乱码修复与 IDEA 风格输出配置
vscode·python·code runner
开发者联盟league19 小时前
vscode接入deepseek实现inline suggestions
vscode·编辑器
木卫二号Coding20 小时前
Vdit 实现所见即所得(WYSIWYG) 模式的 Markdown 编辑器
编辑器
love530love1 天前
将 ChatCut MCP 插件从 Codex 桌面应用移植到 WorkBuddy —— 完整适配实录
ide·人工智能·windows·视频剪辑·ai agent
小李不困还能学2 天前
PyCharm下载安装与配置教程
ide·python·pycharm
知福致福2 天前
vscode连接远程服务器登录codex插件一直卡在gpt图标页,不跳转浏览器登录
服务器·vscode·gpt
广东帝工2 天前
桥梁智能防撞主动预警系统——架构、体系、预警机制
编辑器
A小调的码农2 天前
OPENOCD+MSYS+VSCODE:从“灯不亮“到“终于亮了“
ide·vscode·stm32·单片机·编辑器
AI的探索之旅2 天前
让 Claude Code 直接操刀画原理图和 PCB:VSCode 插件接外部 API 全流程
linux·ide·vscode·嵌入式硬件·编辑器