描述
点击F5运行dlv调试go代码时报错:couldn't start dlv dap: connection timeout
解决方式
在网上搜索这个报错,据说是dlv的配置问题,修改配置后还是不行。有人说是dlv和go的版本不匹配,就朝这个方向试试
go版本改为1.19之后,F5运行后错误改变了:invalid go version '1.21.0': must match format 1.23 (exit status 1)
我第一感觉是需要使用go的1.23版本,在go官网并没有发现这个版本,最新的就是1.21。其实它的意思是go.mod文件的go版本应该写成"1.21",不要带后面的".0"。因为现在要试用1.19版本,就改成了1.19。这里的1.23就像是go结构化time.Time一样,使用的是"2006-01-02 15:04:05"。这次可以了
之后又出现了一个奇怪的问题,当我把go环境切换为1.21,并且go.mod文件里面的版本号也改回了1.21.0,dlv依然可以运行
总结
最后我也不太清楚到底是什么问题,不过既然最后可以了,遇到这个报错可以修改下go环境试试