gpt4 book ai didi

c - 使用 Libgcrypt 的程序中的内存泄漏

转载 作者:行者123 更新时间:2023-11-30 17:59:11 30 4
gpt4 key购买 nike

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

我尝试过使用

valgrind --leak-check=full --track-origins=yes --show-reachable=yes ./my_program

但是 valgrind valgrind 只提示我的代码中的这一行:

version = gcry_check_version("1.5.0");

和 valgrind 了解 Libgcrypt 的内部函数。

我的测试代码在这里:http://www.tiago.eti.br/storage/post2.c我正在使用 Debian sid 存储库中的 Libgcrypt 1.5.0

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

最佳答案

并非所有图书馆都非常小心地清理所有资源。只要某些“永久”分配仅发生一次并且一直使用到程序结束(例如版本字符串),库完全有可能从不费心去释放它。

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

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

关于c - 使用 Libgcrypt 的程序中的内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11660001/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com