panic: runtime error: cgo argument has Go pointer to Go pointer

今天在公司用 golang 写了一个工具程序,用到了代码仓库中的一个读取 k-v 数据库的接口,运行,出现panic:

panic: runtime error: cgo argument has Go pointer to Go pointer
......

这个接口线上模块也在用,应该是没问题的;由于对golang还没有掌握到炉火纯青的地步,一直不明白问题原因,怀疑是环境问题。
询问多人,终于大神回答说,需要添加如下环境变量来支持 cgo:

export GODEBUG=cgocheck=0

一试,果然行了!

记录一下,点滴积累。


2020.11.25 Wed 21:27


--- #### 2020.12.17 Thu 23:06 ### 补充 《Go 语言高级编程》2.7 节 [《CGO内存模型》](https://chai2010.cn/advanced-go-programming-book/ch2-cgo/ch2-07-memory.html) 对此有解释。 >可以通过设置环境变量GODEBUG=cgocheck=0来关闭指针检查行为。 cgocheck默认的值是1,对应一个简化版本的检测; cgocheck=2:完整的检测功能。
posted @ 2020-11-25 21:30  HorseShoe2016  阅读(2480)  评论(0编辑  收藏  举报