Mongodb-c-driver工作后的分段故障

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==

我的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==    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_清理,它没有帮助,谢谢你