c++ - 使用Go + SWIG + C++代码清理内存管理

标签 c++ go swig cgo address-sanitizer

我正在通过SWIG从Go使用C++库。 SWIG不负责内存管理,因此Go端看起来像这样:

f := NewFoo()
defer DeleteFoo(f)
创建DeleteFoo(f)时,调用f很容易,但是对于C++函数的返回值,可以很容易地忽略它。
我想自动检查我的代码是否正确。
我看到Address Sanitizer是针对GCC和Clang实现的,这听起来像是对的。但是我找不到如何为go test命令启用它的明确方法。

最佳答案

我认为CC="clang -fsanitize=address" go testCC="gcc -fsanitize=address" go test应该有效。

关于c++ - 使用Go + SWIG + C++代码清理内存管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65112791/

相关文章:

c++ - 通用引用和转发引用之间有区别吗?

c++ - 静态函数对类构造的好处

c++ - 关于多态性的基本问题。基类的 vector ,要派生类。如何?

memory - Go Windows 将 Flag 传递给内存映射系统调用

go - Go 练习之旅 #23 : my word counter doesn't work

go - 有没有类似ptpython的golang解释器和自动补全工具?

c# - 使用 SWIG 获取 C 结构来记住 C# 更改?

c++ - OpenCV函数HoughLines(),我应该从哪里考虑图像的原点?

java - SWIG 结构成员被 Java 的垃圾收集器过早释放

c# - 将 SWIG 与 C# 结合使用时的最佳实践是什么?