我在两个非常简单的'hello world'程序上运行valgrind
。他们都返回了同样的错误:
laptop$ g++ hello.cpp -o hello
laptop$ valgrind ./hello
Killed: 9
laptop$ g++ hello2.cpp -o hello2
laptop$ valgrind ./hello2
Killed: 9
我的hello2.cpp看起来像这样:
#include <stdio.h>
int main(void)
{
printf("main.c\n");
return 0;
}
另一个hello world程序只使用cout
中的iostream
而不是printf()
。需要注意的一件重要事情是valgrind在Ubuntu服务器14.04上按预期工作,这些失败的示例出现在运行OSX 10.10的新Macbook Pro上。我一直在搜索,我发现的所有内容都与存在复杂内存问题的大型程序有关。
为什么我的Mac上出现此错误?
答案 0 :(得分:2)
虽然在过去的OS X发布周期中可能出现过Valgrind在获得合理的功能支持之前需要一段时间的情况,但由于最近的重要工作,Valgrind主干已经提供了基本的OS X 10.10和OSX 10.11支持。 / p>
来自邮件列表:
最近有一些努力来改善Valgrind的支持 优胜美地。如果你在Mac OS上开发,你可能想尝试一下 trunk(svn co svn://svn.valgrind.org/valgrind/trunk)并报告任何 你得到破损。对优胜美地的支持至少足够了 一个大型图形应用程序(Firefox)运行正常。支持 之前的发布,10.9(小牛队),也有了很大改进。
请注意,该工作仅针对64位进程。 32位可能 工作,可能对小牛队更好,但我怀疑它会 由于Valgrind的32位x86,优胜美地越来越成问题 指令集支持没有通过SSSE3。
Julian Seward
http://sourceforge.net/p/valgrind/mailman/message/33047840/
完全披露:我是新的Valgrind开发人员之一,他们提供了补丁以支持OS X 10.10和OS X 10.11
答案 1 :(得分:1)
见this answer。简短版本:
brew install --HEAD valgrind
答案 2 :(得分:0)
使用包管理器(例如apt-get
)在OSX 10.10上安装valgrind
是不可靠的。使用以下链接从源代码下载和构建:
http://ranf.tl/2014/11/28/valgrind-on-mac-os-x-10-10-yosemite/