当前位置: 首页 > article >正文

VSCode 多工程联合调试

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

假设你的工程结构如下:

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

步骤 1:配置 tasks.json

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

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

{
  "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 的库。

{
  "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 字段:

"environment": [
  {
    "name": "LD_LIBRARY_PATH",
    "value": "${workspaceFolder}/projectB"
  }
]

步骤 4:启动联合调试

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

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


http://www.kler.cn/a/386562.html

相关文章:

  • SQL50题
  • Rust:GUI 开源框架
  • 高性能分布式缓存Redis-高可用部署
  • 3.2 软件需求:面对过程分析模型
  • 贪心算法-汽车加油
  • 大模型 | 2024年中国智能算力行业白皮书 | 附PDF免费下载
  • PythonBase02
  • MFC图形函数学习06——画椭圆弧线函数
  • EDUCODER头哥 SpringBoot 异常处理
  • UE5.4 PCG 自定义PCG蓝图节点
  • memcache redis区别
  • 【Java项目】基于SpringBoot的【时间管理系统】
  • 选项式api和组合式api
  • 【如何获取股票数据40】Python、Java等多种主流语言实例演示获取股票行情api接口之沪深指数最新分时KDJ数据获取实例演示及接口API说明文档
  • input file检验成功之后才可以点击
  • 网络--应用层协议--HTTP
  • Go语言死锁和阻塞
  • 一种EF(EntityFramework) MySQL修改表名去掉dbo前缀的方法
  • 从0开始搭建一个生产级SpringBoot2.0.X项目(十)SpringBoot 集成RabbitMQ
  • Vue Element-UI 选择隐藏表格中的局部字段信息
  • 智慧交通系统:构建高效安全的城市交通网络
  • 2024 CSS保姆级教程四
  • 深度学习:自注意力机制(Self-attention)详解
  • 工作流初始错误 泛微提交流程提示_泛微协同办公平台E-cology8.0版本后台维护手册(11)–系统参数设置
  • 三菱QD77MS定位模块速度限制功能
  • yolov11-cpp-opencv-dnn推理onnx模型