You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过launch.json向Go的Delve调试器传递dlvFlags参数?

解决VSCode远程Go Delve调试中--buildFlags -mod=mod的传递问题

问题核心

Delve在DAP调试模式下不支持通过dlvFlags传递构建参数,而是要求通过DAP协议launch请求的arguments字段接收,这也是你看到警告Warning: build flags ignored with dap; specify via launch/attach request instead的原因。VSCode的Go插件针对DAP模式提供了专门的配置字段,无需直接操作DAP的arguments。

正确配置方式

在launch.json中直接使用buildFlags字段替代dlvFlags,插件会自动将该字段的值映射到DAPlaunch请求的对应参数中。

示例配置

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Remote Go Debug",
            "type": "go",
            "request": "launch",
            "mode": "remote",
            "program": "${workspaceFolder}",
            "env": {},
            "args": [],
            "buildFlags": "-mod=mod",
            "remotePath": "${workspaceFolder}",
            "port": 2345,
            "host": "remote-host-ip"
        }
    ]
}

关键说明

  • dlvFlags是为Delve的非DAP模式(比如直接命令行启动)设计的,DAP模式下Delve会忽略该参数,所以不要在DAP调试配置中混用。
  • 如果你需要传递多个构建参数,直接在buildFlags中用空格分隔即可,比如"-mod=mod -race"。

内容的提问来源于stack exchange,提问作者user18911088

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 23:10:11