Resolve “Could not find __debug_frame section in binary” when trying to Debug Metricbeat with Delve and Go 1.10.4
Today we were trying to debug Metricbeat (on commit #cff3e40c) using Visual Studio Code v1.27.2 and Delve debugger but it failed with the error:
Could not find __debug_frame section in binary
Our environment was:
$ go version
go version go1.10.4 linux/amd64
$ dlv version
Delve Debugger
Version: 1.1.0
Build: $Id: 1990ba12450cab9425a2ae62e6ab988725023d5c
Our Visual Studio Code debug configuration was the following:
{
"version": "0.2.0",
"configurations": [
{
"name": "Launch",
"type": "go",
"request": "launch",
"remotePath": "",
"port": 2345,
"host": "127.0.0.1",
"program": "${fileDirname}",
"env": {},
"args": ["-e","-d","'*'","-c", "metricbeat.yml"],
"showLog": true
}
]
}
After 1 hour of searching in the internet we found that starting from go 1.10.x
the .debug_frame
is missing entirely, so Delve could not be used.
Solution
In order to make debugging with Delve work again we downgraded to go 1.9.7
.
You can find more information regarding the problem in the following links:
- Elastic Discuss question #146817
- olang/go #23733
- derekparker/delve #860
- orbs-network/orbs-network-go #245
Have a nice night!
P.S. TAKIS R.I.P. ! We will never forget! We had eaten the best gyros in Triandria, Thessaloniki!
Comments