无论如何都检测到valgrind泄漏

时间:2017-07-16 06:30:09

标签: c++ memory-leaks valgrind clang++

即使我编译并运行这样的程序:

int main() {
    return 0;
}

运行valgrind --leak-check=yes ./a.out

时出现以下valgrind错误
==26391== LEAK SUMMARY:
==26391==    definitely lost: 0 bytes in 0 blocks
==26391==    indirectly lost: 0 bytes in 0 blocks
==26391==      possibly lost: 72 bytes in 3 blocks
==26391==    still reachable: 200 bytes in 6 blocks
==26391==         suppressed: 18,528 bytes in 153 blocks
==26391== Reachable blocks (those to which a pointer was found) are not shown.
==26391== To see them, rerun with: --leak-check=full --show-leak-kinds=all

我正在使用clang++ test.cpp进行编译。我完全不知道如何解决这个问题。

谢谢!

1 个答案:

答案 0 :(得分:1)

Valgrind手册有关于可能丢失的以下内容

  

这意味着已经有一个或多个指向该块的指针的链   发现,但至少有一个指针是内部指针。这个   可能只是内存中的一个随机值恰好指向一个   块,所以你不应该考虑这个,除非你知道你有   内部球。

这意味着所有报告的possibly lost事件都没有泄漏。这需要通过代码仔细检查泄漏来确认。

对于您的特定情况,我们知道您的代码中没有发生泄漏。 您可能希望再次使用valgrind

重新运行--leak-check=full --show-leak-kinds=all