我用liteide进行go环境的配置,最近升级以后发现两个调试器都不能debug代码 了,主要原因有两个。一个是软件签名问题和mac系统的安装问题。
1.gdb
通过
brew install gdb
方式安装好软件,然后制作一个签名。这个网上都有(http://blog.csdn.net/cairo123/article/details/52054280),但是安装成功开始调度会报一个错误:
On macOS 10.12, it fails miserably with "During startup program terminated with signal ?, unknown signal."
这时候就需要把,mac 的SIP服务
经历了XCode编译器代码被注入的事件后,这次 Mac OS X El Capitan系统的升级,启用了更高的安全性保护机制:系统完整性保护System Integrity Protection (SIP)。简单来讲就是更加强制性的保护系统相关的文件夹。所以有好多三方软件执行在权限方面就会出现问题,所以这个服务对开发者来说不是很方便了
今天这个 Mac 技巧就教你如何关闭 Mac SIP 安全设置,不过需要提醒,初级 Mac 用户不要关闭安全设置。
- 重启 Mac,按住 Command+R 键直到 Apple logo 出现,进入 Recovery Mode
- 点击 Utilities > Terminal
- 在 Terminal 中输入 csrutil disable,之后回车
- 重启 Mac
这样 SIP 安全设置就已经被关闭了,如果想重新开启该安全设置,重复上面步骤,在第三步中将命令更换为 csrutil enable。重启之后 就可以调试代码 了
2.delve
然后下一个就是delve调试器了,主要问题是两个。是一签名。另一个是安装方式。以前我通过brew install delve的方式出现forx/exec 的交叉编译异常和could not get thred count异常,后来按如下方式编译通过了并能正常使用了:
mkdir -p $GOPATH/src/github.com/derekparkergit clone https://github.com/derekparker/delve.git $GOPATH/src/github.com/derekparkercd $GOPATH/src/github.com/derekparker/delvegit fetch origin pull/665/headgit checkout FETCH_HEADCERT=dlv-cert make install
代码是在HEAD最新分支下,然后就进行一个dlv-cert签名,但这个签名不是我自己创建的。是之前我用 brew install go-delve/delve/delve通过这种方式,能自动添加一个代码签名。但是安装成功以后会有could not get thread count异常,我就把这个
brew uninstall delve删除了,但是签名留下来了,我直接用这system 签名dlv-cert把上面从gith上下载 的代码直接重新签名了一下,不知道自己手动创建一个签名有没有问题,我感觉 应该可以。下次试试