Memory leaks Valgrind未检测到HDF5泄漏的资源

Memory leaks Valgrind未检测到HDF5泄漏的资源,memory-leaks,valgrind,hdf5,Memory Leaks,Valgrind,Hdf5,我注意到Valgrind没有检测到使用HDF5的C API创建的资源,这些资源在程序结束之前没有关闭,尽管我启动它时使用了选项--leak check=full。这正常吗 在发布代码之前,我经常依赖Valgrind,但今天我在查看代码时感到惊讶和沮丧,因为代码没有被它检测到。Valgrind memcheck tool检测“标准”分配器分配/释放的内存,如malloc/free/new/delete/ 如果HDF5的C API未(内部)使用上述标准分配器, 那么valgrind自己也无法猜到该监

我注意到Valgrind没有检测到使用HDF5的C API创建的资源,这些资源在程序结束之前没有关闭,尽管我启动它时使用了选项--leak check=full。这正常吗


在发布代码之前,我经常依赖Valgrind,但今天我在查看代码时感到惊讶和沮丧,因为代码没有被它检测到。

Valgrind memcheck tool检测“标准”分配器分配/释放的内存,如malloc/free/new/delete/

如果HDF5的C API未(内部)使用上述标准分配器, 那么valgrind自己也无法猜到该监控什么

如果HDF5正在实现自己的堆管理(例如基于mmap和切割 这些块在较小的分配块中), 然后valgrind提供“客户端请求”,允许提供一些valgrind支持 对于此类非标准分配器。但这一切都意味着HDF5中的一些工作 来源

见例。 有关如何描述此类非标准分配器的更多信息

一些库/工具正在实现自己的非标准分配器 有时有一种方法(例如环境变量)指示绕过 这些非标准分配器仍然使用malloc/free/。。。 同样,由HDF5提供

如果现在HDF5真的使用标准分配器,valgrind无法跟踪 然后在valgrind bugzilla上提交一个bug