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

时间:2011-06-17 12:25:28

标签: c++ macos unix gcc valgrind

出于某种原因,我无法使用 OS X 10.6 上的可靠应用程序使用来实现,使用 Apple GCC编译4.2.1 ...在谷歌搜索此错误后,我发现 valgrind 不能与64位可执行文件一起使用,但是我的应用程序及其使用的所有框架都是使用 -m32 标记和文件命令说 ./ MyAppName:Mach-O可执行文件i386 内核也是 I386

有人可以告诉我为什么 valgrind 不会工作呢?

顺便说一句,我从 MacPorts 获得 valgrind ...

3 个答案:

答案 0 :(得分:5)

请注意我遇到了同样的问题,但重新安装了+universal端口选项,如

sudo port install valgrind +universal

让MacPorts版本适合我。

答案 1 :(得分:4)

我正在使用valgrind的Homebrew版本,它对我有用。在下载了valgrind后,它会应用一些补丁,而不是讨论here。此外,它在64位darwin上编译时使用标志--enable-only64bit --build=amd64-darwin

对我来说,macports构建既没有工作,也没有我从valgrind页面的vanilla tar.gz文件创建自己的构建。似乎提供的autoconf脚本不支持以64位模式运行的较新的mac。

答案 2 :(得分:0)

我从 valgrind.org 下载了最新的 valgrind v3.6.1 ,并在OS X下进行了编译,它没有任何问题。