2013-01-01 48 views
7

每次我试图在我的OS X 10.8的笔记本电脑运行valgrind,我得到:的valgrind不工作在OS X 10.8

bad executable (no stack) 
valgrind: ./a.out: cannot execute binary file 

问题是什么?我怎样才能解决这个问题?在Linux上一切正常,所以我不是在误用valgrind。我正在使用的确切线是valgrind --tool=memcheck --leak-check=full ./a.out

回答

8

我得到了同样的错误,但我只是(用自制我brew upgrade valgrind)升级的valgrind到3.8.1,和它的作品,虽然运行Valgrind的输出如下警告:

WARNING: Support on MacOS 10.8 is experimental and mostly broken. 
WARNING: Expect incorrect results, assertions and crashes. 
WARNING: In particular, Memcheck on 32-bit programs will fail to 
WARNING: detect any errors associated with heap-allocated data. 
+1

谢谢,这个问题解决了。显然,我使用的是最新版本,但是使用了SVN的软件包,这种软件包无法正常工作。做一个'酿造去除valgrind; brew安装valgrind'终于安装了'3.8.1'。 – houbysoft

+0

在我的情况下,这是由于从狮子升级到山狮。如果您已经拥有最新版本,更新本身可能不起作用。为了强制重新编译,请遵循@ houbysoft的步骤(上面的评论)。 –

3

我使用了这个问题valgrind与macports。事实证明,我需要

sudo port install valgrind +universal 

我尝试Valgrind的32位可执行文件来安装,我相信,如果没有+通用,32位支持没有被编译。