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

Mac M1环境下VSCode调试Golang程序遇两类错误求助

Mac M1下VSCode调试Go程序的配置修复方案

第一个问题:${fileDirname}引发的编译错误

你用${fileDirname}当program路径时,如果当前打开的是.vscode/launch.json,这个变量会直接指向.vscode目录——这里本来就没有Go源码,肯定编译失败。根据你的调试场景改就行:

  • 要调试当前打开的单个Go文件(比如main.go),把program改成${file}:
    "program": "${file}"
    
  • 要调试整个项目,直接用VSCode的工作区根目录变量${workspaceFolder},它会自动定位到你打开的项目根路径:
    "program": "${workspaceFolder}"
    

第二个问题:调试时出现“Unable to process evaluate: debuggee is running”

这个错误是因为程序一直在运行,没停在断点上,此时没法执行求值操作。按下面的方法解决:

  1. 先加断点:在你要暂停的代码行左边点一下,出现红色圆点就行。启动调试后程序会自动停在断点,这时就能正常用evaluate功能了。
  2. 让程序启动即停:在launch.json里加"stopOnEntry": true,这样程序一启动就会停在main函数的第一行,不用手动加断点也能操作:
    {
        "version": "0.2.0",
        "configurations": [
            {
                "name": "启动Go调试",
                "type": "go",
                "request": "launch",
                "mode": "debug",
                "program": "${workspaceFolder}",
                "stopOnEntry": true
            }
        ]
    }
    
  3. 检查版本兼容性:你的dlv 1.20.1对应Go 1.20是兼容的,但如果Go版本和dlv不匹配也会出问题。执行dlv version和go version确认,版本不对的话更新dlv:
    go install github.com/go-delve/delve/cmd/dlv@latest
    
  4. 更新VSCode Go插件:旧版本插件可能和M1、dlv有兼容问题,去插件市场把Go插件更到最新版。

完整的launch.json示例(适配M1项目调试)

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "调试Go项目",
            "type": "go",
            "request": "launch",
            "mode": "debug",
            "program": "${workspaceFolder}",
            "stopOnEntry": false, // 需要启动即停就改成true
            "args": [], // 程序启动参数按需添加
            "env": {
                "GOOS": "darwin",
                "GOARCH": "arm64" // 适配M1架构
            },
            "showLog": false // 调试有问题时开这个看日志
        }
    ]
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 04:22:51