Mac M1 Goland不能调试的问题

1 篇文章 0 订阅
1 篇文章 0 订阅

Mac M1 Goland不能调试的问题

本文撰写时间为2021年4月17日

  • 花了一个晚上的时间,在最近刚到的Mac mini上搞golang的开发环境,但是一开始总是出现Debug失败的问题
  • 在网上检索各种解决问题的方法都没能最终解决问题

关于环境

  • 现在的golang已经原生支持arm64架构了,我写文章的时候arm的最新版本是 go1.16.3 darwin/arm64
  • 直接去官网下载就可以了 https://golang.google.cn/dl/ 下载后双击安装
    在这里插入图片描述

摸索过程

  • IDE我一开始下载的是最新版的Goland 2021.1 但就是不能调试
  • 后来我就找了两篇文章,但是都没有解决我的问题

https://blog.csdn.net/thinkthewill/article/details/115682380
https://www.cnblogs.com/maxzhang1985/p/14272787.html

  • 但是后来我打开活动监视器的时候突然发现这个Goland不是原生M1的程序,是Intel转译过来的,但其实我是知道JetBrains的Goland已经是原生支持了M1芯片的
  • 于是我又试了Goland 2020.3.1 ,依然是Intel转译的,并且也无法进行Golang程序的调试
  • 经过多个版本的尝试,终于在安装了Goland 2020.3.4 版本的时候,活动监视器显示是原生支持的,可以注意看架构显示的是Apple,我测试过的其他版本的都是显示的Intel
    在这里插入图片描述
  • 然后神奇的事情就发生了,在这个原生版本的Goland下,golang程序竟然就可以正常调试了

原因分析

  • 后来经过一番分析,我发现其实是Goland在使用其自带的dlv调试工具时,没有选择到正确的工具导致的调试失败
  • 在调试的时候,终端里面会出现这样的语句:
    在这里插入图片描述
  • 注意看这里圈起来的地方,这个其实就是Goland最终在调试的时候所调用的调试工具
  • 可以看到这里显示的是…/dlv/macarm/dlv,这是正常调用时的;在其它版本Goland调试失败的时候,这里显示调用的会是…/dlv/mac/dlv,所以在调试的时候工具都选错了,就没办法成功调试咯
  • 所以理论上你把这里的dlv换成正确的版本就可以成功调试了,但是我经过尝试,非Goland 2020.3.4版本下的…/dlv/macarm/dlv都是不能正常使用的,所以还是老老实实安装Goland 2020.3.4吧
    在这里插入图片描述

最终结论

  • 安装Goland 2020.3.4解决一切问题
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值