优胜美地和瓦尔格朗德


110

您能告诉我如何在优胜美地上安装valgrind吗?当我尝试安装它时,我得到“正在检查内核版本...不支持(14.0.0)的配置:错误:Valgrind在Darwin 10.x,11.x,12.x和13.x(Mac OS X)上运行10.6 / 7/8/9)“

没有正式的路径或更新,我什么也没找到(除了http://comments.gmane.org/gmane.comp.kde.devel.bugs/1553705,但他们没有解决该问题)。


4
已知问题homebrew与无情注:“不太可能是固定在不久的将来,由于上游的发展时间表”
hrbrmstr

@hrbrmstr,谢谢你,我已经通过虚拟机上安装Ubuntu,然后安装在Ubuntu的valgrind解决了这个问题一段时间
Kozlovzxc

Answers:


287

由于没有支持Yosemite的稳定版本,因此您可以通过以下方式安装最新的开发版本:

brew install --HEAD valgrind

5
该命令不再起作用。:我得到这个消息Error: Failed to download resource "valgrind--patch" Download failed: https://gist.githubusercontent.com/jacknagel/cd26a902d72aabd0b51d/raw/1a61a328a87a728dccbeef0594f6fe335e9bf917/valgrind-sdk-paths-Makefile-am.diff
安德烈·卡伦

1
在发布时这是正确的解决方法,但Valgrind现在通过该应用程序的文档发布渠道支持OS X Yosemite。
Rhys Kidd

50

尽管在过去的OS X发行周期中,Valgrind可能需要一段时间才能获得合理的功能支持,但由于在预发行版Yosemite上的大量工作,Valgrind主干中已经提供了基本的OS X 10.10支持。

从邮件列表:

最近已经进行了一些努力来改善Valgrind对优胜美地的支持。如果您在Mac OS上进行开发,则可能要尝试使用主干(svn co svn://svn.valgrind.org/valgrind/trunk)并报告您遇到的任何损坏。对优胜美地的支持足够好,至少一个大型图形应用程序(Firefox)可以正常运行。对先前版本10.9(Mavericks)的支持也得到了显着改善。

请注意,这项工作仅针对64位进程。32位也许可以工作,并且在Mavericks上可能更好,但是我怀疑由于Valgrind的32位x86指令集支持尚未通过SSSE3的支持,在优胜美地这将越来越成问题。

朱利安·苏厄德(Julian Seward)

http://sourceforge.net/p/valgrind/mailman/message/33047840/

全面披露:我是Valgrind的新开发人员之一,他们贡献了补丁程序来支持OS X 10.10


14
为valgrind贡献+1。根据我的代码运行它。它指出了细分错误的原因,自从我找不到原因以来,在过去的24小时里一直使我发疯。
ArtOfWarfare 2015年

11

Valerio的svn工作流程将下载每个分支,这既浪费时间又消耗资源。更好的过程是只下载中继:

svn co svn://svn.valgrind.org/valgrind/trunk valgrind
cd valgrind
./autogen.sh
./configure
make
make install

注意到下载此文件比发布源.tar.bz花费的时间要长得多……仅仅是压缩产生了如此大的差异,还是实际上是下载了其他文件而不会?(我想可能是不同的服务器...或svn cocurl... 之间的区别)
ArtOfWarfare 2015年

+1:工作出色。我唯一改变的是sudo make install最后而不是我make install。不知道是否有必要,因为我没有按照您的方式尝试。
ArtOfWarfare 2015年

8

这是我的看法。我或多或少安装了带有xcode的干净mac。使用以下命令进行编译和运行:

# build/install autoconf/automake/libtool so that 'autogen' works
curl -OL http://ftpmirror.gnu.org/autoconf/autoconf-2.69.tar.gz
tar -xzf autoconf-2.69.tar.gz 
cd autoconf-2.69
./configure && make && sudo make install
cd ..

curl -OL http://ftpmirror.gnu.org/automake/automake-1.14.tar.gz
tar -xzf automake-1.14.tar.gz
cd automake-1.14
./configure && make && sudo make install
cd..

curl -OL http://ftpmirror.gnu.org/libtool/libtool-2.4.2.tar.gz
tar -xzf libtool-2.4.2.tar.gz
cd libtool-2.4.2
./configure && make && sudo make install
cd ..

svn co svn://svn.valgrind.org/valgrind/trunk valgrind
cd valgrind
./autogen.sh
# important: configure-params, otherwise make ends in errors 
./configure -disable-tls --enable-only64bit --build=amd64-darwin 
make
# sudo, otherwise it fails due to permissions 
sudo make install  

请注意,callgrind_control(来自valgrind-3.11.0 SVN)在OS X上似乎不起作用,看起来像perl脚本,并且它运行的命令行工具(vgdb -l)会打印出“意外”的内容,而该脚本不会执行此操作” t正确解析(因此它将找不到使用valgrind运行的其他进程)。

另外,perl脚本仅调用vgdb,我们也可以直接执行此操作(只需手动找出您的process-id):

vgdb --pid=2858 instrumentation on

太棒了,这正是我要在优胜美地10.10.4上运行valgrind所需要的,唯一的是,上面表示-disable-tls开关的命令具有Unicode连字符,而不是常规的ascii连字符。
蒂姆·凯恩2015年

很高兴能为您提供帮助-感谢您指出连字符(已更新)。还为callgrind_control问题添加了解决方法。
kalmiya 2015年

7

在10.10.1上为我工作:

svn co svn://svn.valgrind.org/valgrind
cd valgrind
./autogen.sh
./configure
make
make install

试过这个。我放弃了下载许多不相关的测试。
GrantJ

1
从开发人员的角度来看,回归测试是Valgrind程序的重要组成部分。尽管最新的对OS X平台支持的改进尚未使Valgrind正式发布,但是不幸的是,您需要下载包含测试的版本。如果由于某种原因SVN下载对您的连接造成麻烦,则存在非官方的 GitHub存储库:github.com/liquid-mirror/valgrind
Rhys Kidd,

7

这里列出的所有解决方案对我来说都是失败的。最终工作的是使用mac端口。

sudo port install valgrind-devel


3

这是使用官方svn之外的其他方法来安装它的方法(因为它似乎是间歇性的)。

https://crispyappstudiosblog.wordpress.com/2015/07/07/installing-valgrind-on-osx-yosemite/

1)导航到svn的git镜像并下载最新的可用版本: http://repo.or.cz/w/valgrind.git

2)您也需要VEX,因此请在此处获取最新版本: http://repo.or.cz/w/vex.git

3)提取它们两者。将VEX文件夹的全部内容放入valgrind目录顶层的名为VEX的文件夹中。

cd 到valgrind目录,然后执行以下操作:

Run ./autogen.sh

Run ./configure

Run make

Run sudo make install

通过运行进行测试valgrind --version您应该至少运行3.11.0 SVN才能在优胜美地上运行。 在OSX Yosemite 10.10.4上运行的Valgrind 3.11.0 SVN


3

我通过homebrew在终端上安装然后运行这3个命令在Mac上安装了它。

  1. brew update
  2. brew doctor
  3. brew install --HEAD valgrind

PS:我有Os X El Capitan(10.11),但它也可以在以前的版本中使用。


比这更新的内容:valgrind: This formula either does not compile or function as expected on macOS versions newer than El Capitan due to an upstream incompatibility.
Alex

2

我终于让Valgrind从事我的OSX El Capitan 10.11.12的工作

安装Xcode命令行工具后,用户Kalmiya的答案首先对我有用

在终端中输入:

xcode-select-安装

现在,逐步按照Kalmiya的帖子进行操作。 https://stackoverflow.com/a/30366798/3633475


我的Mac Book Pro已更新了最新版本的Mac OS,它是10.11.3而不是10.11.12!你的建议对我也不起作用。这是错误Assertion 'tst->os_state.pthread - magic_delta == self' failed.
SMMousavi

@SMMousavi在SVN开发版本中为Valgrind修复了“声明'test-> os_state.pthread-magic_delta == self'”错误。
Rhys Kidd

@RhysKidd非常感谢您提供的信息:)
SMMousavi

0

这是svn安装的另一种方法。以前的人没有工作对我来说,因为我需要有automakeautoconf安装,这是我没有,即使我有最新版本的安装Xcode的命令行工具。

我从这个站点得到了以下内容。我也只好链接automakeautoconf后做事brew install automakebrew install autoconfbrew link automakebrew link autoconf这个工作。

# Check out their repo...
$ svn co svn://svn.valgrind.org/valgrind/trunk valgrind-trunk
# and hop into it.
$ cd valgrind-trunk

# You need to have autoconf and automake installed to build Valgrind
# This example uses Homebrew to install these dependencies
# (MacPorts should also work)
# (Permission error? add sudo!)
$ brew install automake
$ brew install autoconf

# run autogen.sh in valgrind-trunk
$ ./autogen.sh

# Tricky, there are some hard wired paths in the Valgrind sources.
# You need to symlink the mach folder in your XCode SDK to /usr/include/mach
# Be sure to use the proper Xcode SDK "MacOSX10.10.sdk" in the path!
$ ln -sv /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/mach /usr/include/mach

# Run configure + set install paths in valgrind-trunk
$ ./configure --prefix=/usr/local

# Run Make and make install (permission error? add sudo!) in valgrind-trunk
$ make
$ make install

# Check it works
$ valgrind --version
valgrind-3.11.0.SVN

1
上10.10.3仍然没有成功:$ make ... Making all in coregrind make[2]: *** No rule to make target '/usr/include/mach/mach_vm.defs', needed 'by m_mach/mach_vmUser.c'. Stop. make[1]: *** [all-recursive] Error 1 make: *** [all] Error 2 虽然在/ usr /包括/马赫物在根目录中创建,符号链接等作为描述
HopeNick

0

我已经按照kalmiya的说明将valgrind构建为OSX Yosemite的conda软件包。对于使用anaconda / conda的人,只需

conda install -c https://conda.binstar.org/groakat valgrind

旁注:我需要按如下所述安装命令行工具来编译valgrind。

https://stackoverflow.com/a/30471647/2156909


0

我在优胜美地上编译了valgrind,但必须使用hack来完成。虽然我认为您应该xcode-select install用来获取所有命令行工具(此后valgrind应该可以正常制作),但是如果您不想这样做(例如Xcode工具的尺寸太大),也可以获取Darwin OSX代码并将以下文件复制到/usr/include/mach

   mach_vm.defs
    task.defs
    thread_act.defs
    vm_map.defs

这可以进行干净的编译和安装,尽管请注意这是一个相当轻松的hack。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.