Valgrind在Mac OSX 10.8上显示空程序的内存泄漏

Valgrind使用brew安装。

#include  #include  int main() { return 0; } gcc -g -o hello hello.c valgrind --tool=memcheck --leak-check=yes ./hello 

在此处输入图像描述

这不是您需要担心的内存泄漏。 ImageLoader是OS X运行时的一部分,负责加载二进制文件和动态库。 它在初始化期间分配一些内存并忘记它,但它是无害的,因为它只是一小块内存分配一次。 而且它做了很多Valgrind不喜欢但却不正确的事情。 您应该将这些添加到抑制文件中 。

Valgrind的Mac OSX 10.8支持仍然有限。 ImageLoaderMachO :: doInitialization …应该在您的抑制文件中。

另一个答案是正确的,我碰巧遇到了同样的问题,并且在创建抑制文件时遇到了一些麻烦。 所以,为了帮助其他人,这里是我为Mac OS X Mountain Lion生成的最小抑制文件: https : //www.dropbox.com/s/2btyqnf8uesgsis/minimal.supp