使用--leak-check=full
运行valgrind时,生成的报告包含有关内存“可能丢失”的信息。
valgrind手册中有一些相关信息,以及一些示例报告。
http://valgrind.org/docs/manual/mc-manual.html
LEAK SUMMARY:
definitely lost: 4 bytes in 1 blocks
indirectly lost: 0 bytes in 0 blocks
possibly lost: 0 bytes in 0 blocks
still reachable: 95 bytes in 6 blocks
of which reachable via heuristic:
stdstring : 56 bytes in 2 blocks
length64 : 16 bytes in 1 blocks
newarray : 7 bytes in 1 blocks
multipleinheritance: 8 bytes in 1 blocks
suppressed: 0 bytes in 0 blocks
在我自己的系统中,当用valgrind执行我的多线程测试二进制文件时,我会获得大量“可能”丢失的内存。
究竟是什么意思,valgrind将记忆报告为“可能丢失”?是丢失还是不是在这个特定的执行中。在我看来,内存泄漏应该比“可能丢失”更黑和白。
答案 0 :(得分:1)
大致类别
Valgrind可能会发现可能丢失的主要原因是
因此,作为一项规则,如果您不使用内存管理器,请将可能的损失视为明确的损失。