Ryan
Ryan

Reputation: 1242

Unable to debug Golang on Vscode M1 Mac (arm64)

I have an M1 mac and cannot invoke functions via DLV in VSCode.

Unable to evaluate expression: backend does not support function calls

Delve Debugger
Version: 1.8.2
❯ go version                                                                                                                                              ─╯
go version go1.18 darwin/arm64

What am I missing?

Launch.JSON file

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Launch file",
      "type": "go",
      "request": "launch",
      "mode": "auto",
      "program": "${file}",
      "env": {
        "PATH": "/usr/local/go/bin:${fileDirname}"
      },
      "args": []
    }
  ]
}

Upvotes: 3

Views: 4268

Answers (3)

VonC
VonC

Reputation: 1324537

From Delve (May 2022):

Support for calling functions on ARM64 has landed! https://github.com/go-delve/delve/pull/2996

Requires Go & Delve built from source with the latest changes.

Call functions from a debug session on ARM64 CPUs, including the Apple M1!

Note: Support function call injection on arm64 with Go 1.19 (CL 395754, as noted in issue 2277), so you will need to wait for Q4 2022.

Upvotes: 4

Marcelloh
Marcelloh

Reputation: 80

On an M1:

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Debug normal",
            "type": "go",
            "request": "launch",
            "mode": "auto",
            "program": "${workspaceRoot}",
            "env": {},
            "args": []
        },
        {
            "name": "Debug arg=migrate",
            "type": "go",
            "request": "launch",
            "mode": "auto",
            "program": "${workspaceRoot}",
            "env": {},
            "args": [
                "migrate"
            ]
        }
    ]
}

Which Go version?

Did you install delve with that version?

Upvotes: 0

saqsham
saqsham

Reputation: 69

The following json works for me-

 {
        "version": "0.2.0",
        "configurations": [
            {
                "name": "DEV",
                "type": "go",
                "request": "launch",
                "mode": "auto",
                "program": "${workspaceFolder}",
                "env": {
                    "ENV_SERVERADDRESS": "0.0.0.0:7171",
                }
            }
        ] 
 }

Upvotes: 1

Related Questions