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

我正在使用GoLand IDE,并且具有以下简单代码:</ p>

  package main 

import(
“ fmt”
“ time”

func main(){
start:= time.Now()
time.Sleep( 2 * time.Second)
经过了:= time.Since(start)
fmt.Println(“ elapsed:%s”,经过)
}
</ code> </ pre>

< p>当我运行它时,它可以正常工作,并且看到输出。

将断点放在其中一行中时,收到以下错误:</ p>

  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
无法启动过程:找不到二进制文件中的.debug_line部分

调试器以退出代码1完成
</ c ode> </ pre>

我没有找到有关此错误的任何信息。

我阅读了有关Go中调试的信息,并提到使用 -gcflags“ all = -N -l“ </ code>正在使用。 </ p>

失败的原因可能是什么? </ p>
</ div>

展开原文

原文

I am working with GoLand IDE and I have the following simple code:

package main

import (
    "fmt"
    "time"
)


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

When I run it, it works fine and I see the output.
When I put breakpoint in one of the lines I received the following error:

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  

I didn't find any information regarding this error.
I read about debugging in Go and it was mentioned to use -gcflags "all=-N -l" which is being used.

What can be the reason for this fail?

duanjiwu0324
duanjiwu0324 更新dlvgoget-ugithub.com/derekparker/delve/cmd/dlv
接近 2 年之前 回复

1个回答



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

展开原文

原文

It seems you are using an outdated version of GoLand, 2018.1.4. Upgrade to 2018.2.2 and the issue will disappear.

duanqianruan8448
duanqianruan8448 我不确定我是否理解您的情况,但是在最初的问题中,问题是内置版本的Delve是使用旧版本的Go编译的,并且升级IDE允许将delve更新为使用Go编译的版本。 最新可用。 另外,根据您使用的Go版本,命令应为go build -o binary -gcflags =“ all = -N -l” -v ./src/app,以确保 二进制文件应用了-N -l标志(Go 1.10或更高版本需要此标志)。
接近 2 年之前 回复
dsio68964998
dsio68964998 有什么区别? 我正在使用命令行进行构建-o _debugbuild -gcflags“ -N -l” -v ./src/app/,当我运行它时,我在打开goland之前遇到了相同的错误。 以前它将阻止执行,直到goland尝试连接为止
接近 2 年之前 回复
duanba4254
duanba4254 我正在运行2018.1.4。 安装2018.2.2后,现在可以使用了,谢谢。
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐