Valgrind:内存泄漏还是没有?

时间:2013-12-30 22:40:01

标签: c linux memory-leaks valgrind

我在我的程序上运行valgrind并且我得到以下输出(我将忽略上面的83个错误,让我知道是否应该将它们包含在日志中):

==9723== LEAK SUMMARY:
==9723==    definitely lost: 0 bytes in 0 blocks
==9723==    indirectly lost: 0 bytes in 0 blocks
==9723==      possibly lost: 4,676 bytes in 83 blocks
==9723==    still reachable: 88,524 bytes in 579 blocks
==9723==         suppressed: 0 bytes in 0 blocks
==9723== Reachable blocks (those to which a pointer was found) are not shown.
==9723== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==9723== 
==9723== For counts of detected and suppressed errors, rerun with: -v
==9723== ERROR SUMMARY: 83 errors from 83 contexts (suppressed: 3 from 3)

这是我从valgrind得到的输出,无论我运行程序多长时间,无论是2秒还是2分钟。

由于“可能丢失”不会随着时间的推移而增加,假设我没有内存泄漏是否安全?

这些错误似乎都来自libglib并围绕着g_malloc0和g_realloc。

1 个答案:

答案 0 :(得分:1)

valgrind中的

Possibly lost错误涵盖了涉及指针链的子集。我肯定会追究这个原因,直到你能确认它不是问题(至少,你的内存不应该增长),因为它可能表明你的代码中存在其他逻辑问题

This帖子有一个答案可以更详细地解决它。

有关详细信息,您还可以查看valgrind手册中的relevant section