我觉得这应该是一个功能,但我的Google-Fu失败了我。如果之前已经提过/回答过,我很抱歉,这感觉很明显,但我找不到任何东西。Valgrind标记故意泄漏
是否有办法将分配标记为故意泄漏?上下文是在程序初始化期间动态分配一次并在整个程序生命周期中使用的数据结构。没有真正的理由在程序终止之前释放所有分配的对象(为什么要在房间里有一个破坏的球冲向整个房间时清理房间?),但是它会导致Valgrind的很多误报。
我知道我可以创建一个压缩文件,但感觉手动和断开连接。我更喜欢某种宏或其他源内注释,这种分配是故意从未释放的(例如类似于malloc(...)
- >malloc_IGNORE_LEAK(...)
)。 valgrind是否以某种方式支持这一点?
如果不是,那么标记/跟踪故意“泄漏”的首选解决方案是什么?
这个答案是关于在执行结束时释放内存的问题总结了我的想法:http://stackoverflow.com/a/2213644/1609219 – Macattack
我是这种情况下相反的意识形态。有问题的应用程序根本不是跨平台的(也不是试图成为),它被设计为在相对高性能的机器上的Unix环境中运行。在现代的情况下,这意味着虚拟内存。事实上,凯文的以下回答在这种情况下非常合适。这个问题不是“我应该释放程序终身记忆”,它是“我打算让操作系统完成它的工作,我怎么告诉其他工具” – Pat
我理解你的问题,这就是为什么我没有发布作为一个答案,只有一个评论。话虽如此,他们还可以吗?或者,你是否可以存储指向所有分配的指针,并且这样可以保持内存的可达性,并使'--show-reachable = no'可行。 – Macattack