以下是Golang中dlv无法工作的问题(断点无法停止的问题)(备忘录)

个人电脑的设置或环境

M1 MAC Monterey
Golang 1.17, 1.19
vscode

経緯 – 经过或背景

    1. 我把Golang的版本从1.17升级到1.19.3了

 

    1. 我通过vscode更新了go delve的版本

 

    调试可以运行,但断点无法触发。

对应记录

    1. 将Golang版本降级到1.17

 

    1. → 从delve中显示版本过低时出错

将Golang版本下载为brew、goenv
→ 不会在断点处停止

更改vscode launch.json中的substitutePath
→ 不会在断点处停止

删除当前下载的所有Golang,然后使用asdf重新下载Golang并设置路径
→ 不会在断点处停止

解决

 

运行并调试:运行并调试:专注于断点视图,以查看dlv内部错误。

在上述的处理中,出现了一个错误提示说找不到断点。
使用普通的Debug按钮时没有出现错误提示。

确认GoFlag的选项

 

在我的电脑上使用go env命令确认GOFLAGS已设置为”-trimpath”。与使用相同的M1 MAC的同事进行比较后发现,该Mac上没有设置GOFLAGS,因此要删除该设置。

go env -w GOFLAGS=''

完成处理

广告
将在 10 秒后关闭
bannerAds