我在 macos x 10.8 上运行 valgrind。 Valgrind 在启动时说
"==11312== WARNING: Support on MacOS 10.8 is experimental and mostly broken.
==11312== WARNING: Expect incorrect results, assertions and crashes.
==11312== WARNING: In particular, Memcheck on 32-bit programs will fail to
==11312== WARNING: detect any errors associated with heap-allocated data."
Valgrind 给出了这次泄漏的摘要:
"LEAK SUMMARY:
==11312== definitely lost: 0 bytes in 0 blocks
==11312== indirectly lost: 48 bytes in 2 blocks
==11312== possibly lost: 0 bytes in 0 blocks
==11312== still reachable: 45,857 bytes in 270 blocks
==11312== suppressed: 16,805 bytes in 87 blocks"
根据 valgrinds 常见问题解答,http://valgrind.org/docs/manual/faq.html#faq.deflost http://valgrind.org/docs/manual/faq.html#faq.deflost,“间接丢失”意味着您的程序正在泄漏基于指针的结构中的内存。 (例如,如果二叉树的根节点“肯定丢失”,则所有子节点都将“间接丢失”。)如果修复“肯定丢失”泄漏,“间接丢失”泄漏应该消失。
我没有任何明显丢失的泄漏,甚至可能丢失的泄漏需要修复。我应该解决什么问题?由于 10.8 中 valgrind 的实验性质,此报告是否可能是一个错误?
我相信我正在将其编译为 64 位程序,因为编译器是 64 位编译器。
我觉得回答自己的问题很奇怪。
是的,mac 上 valgrind 的报告不正确。根据 linux 上的 valgrind,所有堆块都被释放,因此不可能发生泄漏。
我真的希望 valgrind 能够解决 mac 的问题,因为我现在主要在 mac 上进行开发。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)