无法调试二进制文件-“无法启动进程:在二进制文件中找不到.debug_line节”

时间:2018-09-04 14:48:35

标签: debugging go goland

我正在使用GoLand IDE,并且有以下简单代码:

package main

import (
    "fmt"
    "time"
)


func main() {
    start := time.Now()
    time.Sleep(2 * time.Second)
    elapsed := time.Since(start)
    fmt.Println("elapsed: %s", elapsed)
}

当我运行它时,它可以正常工作,并且看到输出。
当我在其中一行中放置断点时,收到以下错误:

GOROOT=/usr/local/go #gosetup  
GOPATH=/root/go #gosetup  
/usr/local/go/bin/go build -o /tmp/___go_build_mymain_go -gcflags "all=-N -l" /root/go/src/myproj/mymain.go #gosetup  
/home/myuser/Desktop/GoLand-2018.1.4/plugins/go/lib/dlv/linux/dlv --listen=localhost:35607 --headless=true --api-version=2 --backend=default exec /tmp/___go_build_mymain_go -- #gosetup  
could not launch process: could not find .debug_line section in binary  

Debugger finished with exit code 1  

我没有找到有关此错误的任何信息。
我阅读了有关Go中调试的信息,并提到使用正在使用的-gcflags "all=-N -l"

失败的原因可能是什么?

1 个答案:

答案 0 :(得分:3)

似乎您使用的是GoLand 2018.1.4的过时版本。升级到2018.2.2,问题将消失。