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

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

转载 https://www.cnblogs.com/dongling/p/14038904.html
今天在公司用 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内存模型》 对此有解释。

可以通过设置环境变量GODEBUG=cgocheck=0来关闭指针检查行为。
cgocheck默认的值是1,对应一个简化版本的检测;
cgocheck=2:完整的检测功能。

posted @ 2021-07-23 14:03  Micheal_L  阅读(886)  评论(0编辑  收藏  举报