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

问题描述 投票:2回答:1

我正在使用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"

这种失败的原因是什么?

debugging go goland
1个回答
3
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.