Valgrind错误 - 无法执行二进制文件

3
由于某些原因,我无法在使用Apple GCC 4.2.1编译的OS X 10.6上的Cocoa应用程序中,在使用-m32标志编译应用程序及其所有框架后,无法使valgrind生效。经过谷歌搜索后,我发现valgrind不支持64位可执行文件,但是file命令显示 "./MyAppName: Mach-O executable i386",内核也是i386。请问有人能告诉我为什么valgrind不会工作吗?另外,我从MacPorts获取了valgrind...
3个回答

5

提醒一下,我曾经遇到同样的问题,但是重新安装时使用了+universal端口选项,就像这样:

sudo port install valgrind +universal

我成功让MacPorts版本适用于我的电脑。


4
我正在使用Homebrew版本的valgrind,并且它对我有效。在下载valgrind后,它会应用一些补丁,据我所知,其中一个讨论在这里。此外,在64位darwin上编译时,它使用标志--enable-only64bit --build=amd64-darwin
对我来说,macports版本和我从valgrind页面的原始tar.gz文件创建的版本都无效。似乎提供的autoconf脚本不支持以64位模式运行的较新的mac。

谢谢你的回答,Barbaz!然而,在安装了Homebrew之后,valgrind仍然无法工作...我应该指定一些额外的标志,而不仅仅是brew install valgrind吗? - Ryan
安装Valgrind应该是没有问题的。你能够执行Valgrind吗?例如像这样运行:valgrind --help?这对我来说已经导致了一个分段错误,使用了macports +原始版本。 - barbaz
我在运行MacPorts或Homebrew valgrind --help时没有遇到任何问题...并且在安装Homebrew版本之前卸载了MacPorts版本。 - Ryan
2
那么您正在经历另一个问题。您能具体说明一下“无法使valgrind工作”吗? - barbaz
2
Valgrind本身可以正常工作,但当我尝试使用命令valgrind ./MyAppName分析正在运行的应用程序时,它总是报告错误'./MyAppName: 无法执行二进制文件'。如果我尝试执行./MyAppName.app,则错误将相同,只有路径不同... - Ryan

0

我从 valgrind.org 下载了最新版本的Valgrind v3.6.1 ,在 MacOS下编译并且没有出现任何问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接