来到这里的看官估计要喷我了,心想估计又是千篇一律的复制的文章,这里告诉你,让您失望了。
初转go,发现无法debug根本没法干活,难受,旁边的小老弟dubug的飞起,咱老干部在这干着急啊,幸好时间已经是周五了,决定在家一定要好好搞一搞这玩意。
IDE的部分问题没截图(没心情啊,失落),除问题时的配置我大概说一下:
go version: go1.16.8 darwin/amd64
goland:2021.1.2,依稀记得看版本信息里有个x86_64
mac:11.5.1,M1
当我debug我的go程序的时候,提示里有类似
goland failed to allocate vm space for aot
的错误,且goland有时候总是停在一个runtime_xx.什么的文件里,一脸懵。
好的,今天我花了一上午+半个下午的时间,搞定了。问题的主要原因就是因为mac的这个M1芯片问题,很多软件还不太支持,需要细心搭配才行。
我根据以上的问题,去网上查了下,然后就是各种更新软件,各种配置,谈到的主要是说以下几类问题以及解决方案:
问题1.Goland版本不对,需要下载符合M1的对应版本
我的新版本:
(我原来出上面的错误提示是2021.1,操作完这个步骤后debug出现了这个提示“goland Debugging programs compiled with go version go1.16.8 darwin/amd64 is not supported. Use go sdk for darwin/arm64”)
问题2.Goland本身提供的debug工具dlv不太行,需要自己再去下载然后重新编译安装,然后配置IDE,具体方法:
git clone https://github.com/go-delve/delve.git
cd delve/cmd/dlv/
go build
go install(dlv版本:Delve Debugger Version: 1.7.2)
弄完后,就有一个dlv的可执行文件了,需要放到你的$GOPATH/bin里去
(有一篇文章提到,需要在$GOPATH/bin下面再建一个macarm文件夹,然后把这个dlv可执行文件再拷贝进去,不知道有没有效果,
反正我操作了。)
现在还需要一步,就是配置你的goland:($GOPATH替换成你实际的go安装目录)Help → Edit Custom Properties
增加以下代码:
dlv.path=$GOPATH/bin/dlvHelp → Edit Custom VM Options
-Ddlv.path=$GOPATH/bin/dlv
(这个方法我是在我的2021.1版本上操作的,操作完后好像并没有什么*用???所以我后来把这两个配置都删除了)
问题3。还有一部分网友说是go的版本问题,说是go1.16以前的版本不支持m1,1.16才开始,可是我的go是1.16.8,没毛病啊???我在尝试了以上网上说的办法都没用后,没法,我小心翼翼地把我的go版本从1.16.8降到了1.16.3(具体降的方法就是直接下载对应版本安装即可)
为什么是1.16.3?因为网上提到的解决方案都是那幅图()
奇迹出现!装了这个版本,竟然立马就好了!神奇!我也不知道发生了什么,反正就是好了,能debug了,能看到变量了
鬼知道经历了什么
好了,总结一下:
我觉得解决问题的话先将go版本安装到1.16.3,如果不能debug,将IDE升级到2021.2且要是支持M1的版本,应该就可以了!
希望看到这篇文章的朋友,你的问题能早日解决,不能debug真是太难受了