【GoLand】无法debug 无法运行

GoLand,点击debug报错:

复制代码
GOROOT=/Users/tiantian19/sdk/go1.21.9 #gosetup
GOPATH=/Users/tiantian19/go #gosetup
/Users/tiantian19/sdk/go1.21.9/bin/go build -o /Users/tiantian19/Library/Caches/JetBrains/GoLand2023.1/tmp/GoLand/___go_build_icode_baidu_com_baidu_cov_smartUT_comate -gcflags all=-N -l icode.baidu.com/baidu/cov/smartUT-comate #gosetup
/Applications/GoLand.app/Contents/plugins/go-plugin/lib/dlv/macarm/dlv --listen=127.0.0.1:58724 --headless=true --api-version=2 --check-go-version=false --only-same-user=false exec /Users/tiantian19/Library/Caches/JetBrains/GoLand2023.1/tmp/GoLand/___go_build_icode_baidu_com_baidu_cov_smartUT_comate --
API server listening at: 127.0.0.1:58724
debugserver-@(#)PROGRAM:LLDB  PROJECT:lldb-1600.0.39.109
 for arm64.
Got a connection, launched process /Users/tiantian19/Library/Caches/JetBrains/GoLand2023.1/tmp/GoLand/___go_build_icode_baidu_com_baidu_cov_smartUT_comate (pid = 81255).
Exiting.
could not launch process: decoding dwarf section info at offset 0x0: too short - debuggee must not be built with 'go run' or -ldflags='-s -w', which strip debug info

Debugger finished with the exit code 1

解决方法:

升级dlv

  1. 下载delve
    git clone https://github.com/go-delve/delve
    cd /delve/cmd/dlv 进入build目录,
    go build main.go 编译main.go并生成可执行文件main (这里要确保工作用户与目录的权限一致,否则无法编译)
    mv main dlv 修改可执行文件名
  2. 替换goland dlv

查出dlv路径 需要golang执行一下debug

ps -ef|grep dlv

替换dlv

拷贝旧的debug文件,将新的dlv替换旧的

/Applications/GoLand.app/Contents/plugins/go-plugin/lib/dlv/macarm/dlv

如果还不能debug

查看GoLand中使用的go版本与工程go mod文件中指定版本是否一致

相关推荐
何以解忧,唯有..4 小时前
Go语言循环语句详解:for、range与循环控制
开发语言·算法·golang
踏着七彩祥云的小丑6 小时前
Go学习第9天:并发编程 + 文件操作 + 正则表达式
学习·golang·正则表达式·go
JCGKS7 小时前
Go `init` 函数:包初始化顺序到底是怎样的
golang·init·init执行顺序
何以解忧,唯有..8 小时前
Go语言中的const:常量声明与iota枚举详解
java·开发语言·golang
止语Lab10 小时前
Go 代码生成的三层认知:从忍住不用到自己造轮子
go
geovindu11 小时前
go: Reactor Pattern
开发语言·后端·设计模式·golang·反应器模式
协享科技11 小时前
AI 视频理解:让 Agent 看视频并总结内容
人工智能·go·音视频·agent·ai编程
記億揺晃着的那天20 小时前
Java 调用外部 Go 程序的实践:ProcessBuilder 在生产环境中的应用
java·golang·processbuilder
jingling5551 天前
go | 环境安装和快速入门
开发语言·后端·golang
java_cj1 天前
从kubectl学Visitor模式:如何优雅处理多态数据结构的遍历
云原生·golang·k8s·访问者模式