Valgrind显示Mac OSX 10.8上的空程序内存泄漏
Valgrind是使用brew安装的Valgrind显示Mac OSX 10.8上的空程序内存泄漏,c,macos,valgrind,memory-leaks,C,Macos,Valgrind,Memory Leaks,Valgrind是使用brew安装的 #include <stdio.h> #include <stdlib.h> int main() { return 0; } gcc -g -o hello hello.c valgrind --tool=memcheck --leak-check=yes ./hello #包括 #包括 int main() { 返回0; } gcc-g-o你好,你好 valgrind--tool=memcheck--leak che
#include <stdio.h>
#include <stdlib.h>
int main()
{
return 0;
}
gcc -g -o hello hello.c
valgrind --tool=memcheck --leak-check=yes ./hello
#包括
#包括
int main()
{
返回0;
}
gcc-g-o你好,你好
valgrind--tool=memcheck--leak check=yes./hello
Valgrind中对Mac OSX 10.8的支持仍然有限。ImageLoaderMachO::doInitialization。。。应该在你的抑制文件中 这不是您需要担心的内存泄漏。ImageLoader是OSX运行时的一部分,负责加载二进制文件和动态库。在初始化过程中,它只分配一次内存,然后忘记了它,但它是无害的,因为它是一小块只分配一次的内存。它做了很多Valgrind不喜欢的事情,但这些都是正确的。您应该这样做。另一个答案是正确的,我恰好遇到了同样的问题,并且在创建抑制文件时遇到了一些问题。为了帮助其他人,下面是我为Mac OS X Mountain Lion生成的最小抑制文件:
什么是
ImageLoaderMach0
?我不确定。上面有一大堆错误消息。@Alex Mach是该操作系统底层内核的名称。Mach-O是可执行格式()的名称。“图像加载器”我将留给你解释。请注意,“ImageLoaderMach0”不是OP输入的一部分,本质上,OP问这个问题是因为他不完全知道这段代码的功能(给予或接受)。可能,您必须抑制内存泄漏,因为它们是代码中的第三方,或者不是由您维护的。不过,这很奇怪。()Valgrind对Mac OSX 10.8的支持仍然有限。ImageLoaderMachO::doInitialization。。。应该在抑制文件中。链接不再处于活动状态。