首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Libgcrypt的程序中的内存泄漏

使用Libgcrypt的程序中的内存泄漏
EN

Stack Overflow用户
提问于 2012-07-26 07:08:46
回答 1查看 452关注 0票数 0

我正在使用Libgcrypt做一些测试,当我使用valgrind检查内存使用情况时,在退出时有3200个字节在使用。

我试着用

代码语言:javascript
复制
valgrind --leak-check=full --track-origins=yes --show-reachable=yes ./my_program

但是valgrind valgrind只抱怨我的代码中的这一行:

代码语言:javascript
复制
version = gcry_check_version("1.5.0");

以及关于Libgcrypt内部函数的valgrind。

我的测试代码在这里:http://www.tiago.eti.br/storage/post2.c和我使用的是来自Debian sid仓库的Libgcrypt1.5.0

这是Libgcrypt的bug,还是我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-26 07:40:35

并不是所有的库都非常小心地清理所有的资源。只要一些“永久”分配只发生一次,并且一直使用到程序结束(例如,对于一个版本字符串),那么完全有可能库根本不会去释放它。

因此,处理第三方库是一个不幸的现实,如果它困扰您,您应该使用--gen-suppressions=all为Valgrind创建一个抑制文件。

请记住,“仍然可访问”的内存只是“懒惰”,而不是真正的泄漏,因为您实际上从未丢失过分配。泄漏应该被认为是真正的编程错误,虽然仍然可以访问,但未释放的内存可能是也可能不是一个可原谅的快捷方式。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11660001

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档