【发布时间】:2011-05-12 14:15:10
【问题描述】:
我知道这不是一个新问题,但我在其他地方没有找到任何可行的方法。 我有一个 C 程序,它在运行时会不断消耗内存——我使用“free”命令来跟踪它,我可以看到只要它执行,可用内存量就会减少,这是不应该发生的。但是,我在程序本身中找不到任何可能导致这种情况的东西。我还用 valgrind 和 dmalloc 对其进行了测试,它们都能够检测到任何内存丢失。
如何找到泄漏点?
【问题讨论】:
-
您确定在已用内存量中不包括缓冲区吗?如果您的程序读取文件等,这可能会导致那里的内存稳定增加,但该内存并没有真正“使用中”,因为它对其他应用程序将变得不可用。
-
我很确定。在我让程序运行两天后,我第一次注意到这一点,它填满了所有内存并崩溃了。
标签: c debugging memory-leaks