[英]Memory leak in a program with Libgcrypt
我正在使用Libgcrypt进行一些测试,当我使用valgrind检查内存使用情况时,退出时有3200个字节在使用中。
我尝试使用
valgrind --leak-check=full --track-origins=yes --show-reachable=yes ./my_program
但是valgrind valgrind只在我的代码中抱怨这一行:
version = gcry_check_version("1.5.0");
以及有关Libgcrypt内部功能的valgrind。
我的测试代码在这里: http ://www.tiago.eti.br/storage/post2.c而且我正在使用Debian sid存储库中的Libgcrypt 1.5.0。
这是Libgcrypt的错误,还是我做错了什么?
并非所有的库都非常小心地清理所有资源。 只要某些“永久”分配仅发生一次并且一直使用到程序结束(例如,对于版本字符串),那么该库就完全有可能永远不会去分配它。
因此,与第三方库打交道是不幸的现实,如果麻烦您了,则应使用--gen-suppressions=all
为Valgrind制作一个禁止文件。
请记住,“仍然可以到达”的内存只是“懒惰”,而不是真正的泄漏 ,因为您实际上从未丢失分配。 泄漏应视为真正的编程错误,尽管仍然可以到达,但未取消分配的内存可能是或可能不是可以忽略的快捷方式。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.