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內存模型》 對此有解釋。

可以通過設置環境變量GODEBUG=cgocheck=0來關閉指針檢查行為。
cgocheck默認的值是1,對應一個簡化版本的檢測;
cgocheck=2:完整的檢測功能。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM