ヨセミテとヴァルグリンド


110

ヨセミテにvalgrindをインストールする方法を教えてください。インストールしようとすると、「カーネルバージョンを確認しています...サポートされていません(14.0.0)構成:エラー:ダーウィン10.x、11.x、12.x、13.x(Mac OS XでValgrindが機能します。 10.6 / 7/8/9)」

公式のパスやアップデートはなく、何も見つかりませんでした(http://comments.gmane.org/gmane.comp.kde.devel.bugs/1553705を除いて、それらはその問題を解決しませんでした)。


4
既知の問題homebrew冷淡ノートと:「近い将来に修正される可能性は低いの開発スケジュール上流による」
hrbrmstr

@hrbrmstr、ありがとうございます。仮想マシンにUbuntuをインストールし、Ubuntuにvalgrindをインストールすることで、しばらくの間この問題を解決しました
Kozlovzxc

回答:


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)を試して、発生した破損を報告することをお勧めします。Yosemiteのサポートは、少なくとも1つの大きなグラフィカルアプリケーション(Firefox)が正常に動作するのに十分です。以前のリリースである10.9(Mavericks)のサポートも大幅に改善されています。

この作業は64ビットプロセスのみを対象としていることに注意してください。32ビットは機能する可能性があり、おそらくMavericksでより優れていますが、ヨセミテでは、Valgrindの32ビットx86命令セットのサポートがSSSE3を通過していないため、ますます問題になると思います。

ジュリアン・スワード

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

完全な開示:私はOS X 10.10をサポートするためのパッチを提供してくれた新しいValgrind開発者の一人です


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

+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を呼び出すだけですが、直接行うこともできます(プロセスIDを手動で把握するだけです)。

vgdb --pid=2858 instrumentation on

素晴らしい、これはまさに私がValgrindをYosemite 10.10.4で実行するために必要なものでした。ただ、-disable-tlsスイッチを示す上記のコマンドには、通常のASCIIハイフンではなくUnicodeハイフン文字があります。
Tim Kane、

幸せになりました-ハイフンを指摘してくれてありがとう(更新されました)。また、callgrind_control問題の回避策を追加しました。
カルミア2015

7

10.10.1で私のために働いた:

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

これを試しました。多くの無関係なテストをダウンロードしている間、私はあきらめました。
GrantJ、2015

1
回帰テストは、開発者の観点から見ると、Valgrindプログラムの重要な部分です。公式のValgrindリリースは、OS Xプラットフォームのサポートに対する最近の改善でまだ作成されていませんが、残念ながら、テスト付きのバージョンをダウンロードする必要があります。何らかの理由で接続で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 --versionYosemiteで動作させるには、少なくとも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.
アレックス

2

私はついにValgrindを私のOSX El Capitan 10.11.12で動作させるようにしました

Xcodeコマンドラインツールをインストールした後、ユーザーKalmiyaの回答が最初に機能しました。

これをターミナルに入力します。

xcode-select --install

今度は、カルミヤの投稿に従ってくださいhttps://stackoverflow.com/a/30366798/3633475


私のMac Book Proには最新バージョンのMac OSがすでにアップデートされており、10.11.12ではなく10.11.3です また、あなたの提案は私にとってうまくいきませんでした。これはエラーですAssertion 'tst->os_state.pthread - magic_delta == self' failed.
SMMousavi

@SMMousavi「アサーション 'test-> os_state.pthread-magic_delta == self'」エラーは、SVN開発バージョンのValgrindで修正されました。
Rhys Kidd

@RhysKidd情報ありがとうございます:)
SMMousavi '19年

0

ここに、svn installのもう1つの例があります。私が持っているために必要なので、以前のものは、私のために仕事をしませんでしたautomakeし、autoconf私はXcodeのコマンドラインツールの最新バージョンがインストールされていたにも関わらず、私はしませんでした、インストールされています。

このサイトから以下を得ました。私はまた、リンクに持っていたautomakeし、autoconfやった後brew install automakebrew install autoconf実行してbrew 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

OSX Yosemiteのcondaパッケージとしてvalgrindをビルドするために、kalmiyaの指示を使用しました。anaconda / condaで作業する人は、ただ

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

補足:valgrindをコンパイルするには、以下で説明するコマンドラインツールをインストールする必要がありました。

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


0

Yosemiteでvalgrindをコンパイルしましたが、ハックを使用する必要がありました。xcode-select installすべてのコマンドラインツールを取得するために使用する必要があると思いますが(その後、valgrindは適切に作成する必要があります)、これを実行しない場合(たとえば、Xcodeツールのサイズが大きすぎる)、Darwin OSXを取得することもできます次のファイルをコード化してコピーします/usr/include/mach

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

これにより、クリーンなコンパイルとインストールが可能になりましたが、かなり緩いハックであることに注意してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.