我正在通过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 test
或CC="gcc -fsanitize=address" go test
应该有效。
关于c++ - 使用Go + SWIG + C++代码清理内存管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65112791/