Valgrind:在 dl-init.c 中发现仍然可以访问的内存泄漏。这些是真正的内存泄漏吗?

问题描述 投票:0回答:1

泄漏总结

1

我对 valgrind 还是个新手,我没有足够的知识来评估这个结果。 过去我能够修复内存泄漏,但指出了代码中泄漏的位置,这次我不知道如何修复 dl-init.c 中发现的泄漏,它是 GNU C 库的一部分。

c++ memory-leaks valgrind glib suppression
1个回答
-1
投票

可访问的内存泄漏是资源,您的程序从系统获取但在运行期间没有返回 - 通常通过使用 new()。

在确保快速退出(短跑程序)的情况下,这些都没有问题,因为所有资源都会在 exit() 时自动释放,但在较长的程序运行期间,它们会阻塞内存,您可能不再需要它了。

大多数人倾向于修复所有内存泄漏以确保再次释放内存。因此,请注意释放您获得的所有资源,您的程序可以长期安全运行,您的教授也很高兴。

只有运行时间/工作量绝对不变的程序才会有不释放此类资源的风险。如果你离开它,你迟早会后悔长时间运行的东西(守护进程或大工作量)只获取资源但从不显式返回它们。对于非常大的任务或守护进程/服务等,这将面临内存不足错误的风险。

© www.soinside.com 2019 - 2024. All rights reserved.