Mongodb-c-driver工作后的分段故障
我的Mongodb-c-driver程序运行良好,在编译和运行时没有错误,但是当我用Valgrind检查程序时,我发现内存泄漏Mongodb-c-driver工作后的分段故障,c,linux,mongodb,memory-leaks,valgrind,C,Linux,Mongodb,Memory Leaks,Valgrind,我的Mongodb-c-driver程序运行良好,在编译和运行时没有错误,但是当我用Valgrind检查程序时,我发现内存泄漏 ==30532== at 0x4C29DB4: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==30532== by 0x506BCA5: bson_malloc0 (in /usr/local/lib/libbson-1.0.so.0.0.0) ==30532==
==30532== at 0x4C29DB4: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==30532== by 0x506BCA5: bson_malloc0 (in /usr/local/lib/libbson-1.0.so.0.0.0)
==30532== by 0x4E3B0CB: mongoc_client_new (in /usr/local/lib/libmongoc-1.0.so.0.0.0)
==30532== by 0x4009BA: main (ranker.c:28)
==30532== LEAK SUMMARY:
==30532== definitely lost: 6,656 bytes in 1 blocks
==30532== indirectly lost: 2,598 bytes in 11 blocks
==30532== possibly lost: 0 bytes in 0 blocks
==30532== still reachable: 0 bytes in 0 blocks
==30532== suppressed: 0 bytes in 0 blocks
==30532== For counts of detected and suppressed errors, rerun with: -v
==30532== ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 2 from 2)
Valgrind用以下文字记录了该行:
client = mongoc_client_new ("mongodb://localhost:27017/");
在程序的最后几行中,我有:
mongoc_client_destroy (client);
这是什么?我能做些什么来避免泄漏
编辑:在使用MongoDB的过程中,我仍然存在一些问题,是否有人知道如何解决这个问题 您是否在main的末尾调用了mongoc_清理例程?MongoDB C驱动程序具有一些内部状态,这些状态在启动期间初始化,特别是对于SSL。它需要在程序结束时通过调用cleanup函数手动释放
以下是一个例子:
希望有帮助
-Christian是的,我称之为mongoc_清理,它没有帮助,谢谢你