如何验证两个检查点之间是否已释放所有内存分配?

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

我有一个似乎在泄漏记忆的过程。进程运行的时间越长,它使用的内存就越多。尽管该过程主要包括一个循环,该循环迭代地调用一个不应该在调用之间保留任何数据的函数。当我使用valgrind来检查泄漏时,一切都回来了。运行几个小时后进程最终退出时,退出时会有很大的延迟,这使我相信内存正在该函数中分配,并且不会立即释放,因为它仍然被引用。然后在退出时释放内存,因为该引用最终被释放。

我想知道是否有一种方法与valgrind(或其他一些兼容Linux的工具)在两个代码检查点之间进行泄漏检查。我想获得所有已分配但未在两个代码检查点之间释放的内存的泄漏报告。

linux memory-leaks valgrind
1个回答
0
投票

几年前我写了一篇article

简而言之,你包括valgrind.h然后你可以使用像

VALGRIND_DO_LEAK_CHECK

或者,您可以附加gdb并发出'monitor leak_check'命令。这可以是增量的。见here

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