Yosemite et Valgrind

110

Pouvez-vous me dire comment installer valgrind sur yosemite? Lorsque j'essaye de l'installer, j'obtiens "vérifier la version du noyau ... non pris en charge (14.0.0) configure: erreur: Valgrind fonctionne sur Darwin 10.x, 11.x, 12.x et 13.x (Mac OS X 10,6 / 7/8/9) "

Il n'y a pas de chemin officiel ni de mise à jour, et je n'ai rien trouvé (sauf http://comments.gmane.org/gmane.comp.kde.devel.bugs/1553705 , mais ils n'ont pas résolu ce problème).

Kozlovzxc
la source
4
Problème connu avec homebrewavec une note antipathique: « peu susceptible d'être fixé dans un avenir proche en raison de calendrier de développement de l' amont »
hrbrmstr
@hrbrmstr, merci, j'ai résolu ce problème depuis un certain temps en installant Ubuntu sur une machine virtuelle, puis en installant valgrind sur Ubuntu
Kozlovzxc

Réponses:

287

Comme il n'y a pas de version stable prenant en charge Yosemite, vous pouvez installer la dernière version de développement avec

brew install --HEAD valgrind
Harry F
la source
5
Cette commande ne fonctionne plus. Je reçois ce message:Error: Failed to download resource "valgrind--patch" Download failed: https://gist.githubusercontent.com/jacknagel/cd26a902d72aabd0b51d/raw/1a61a328a87a728dccbeef0594f6fe335e9bf917/valgrind-sdk-paths-Makefile-am.diff
André Caron
1
Alors que c'était la bonne résolution au moment de la publication, Valgrind prend désormais en charge OS X Yosemite via les canaux de publication documentés de l'application.
Rhys Kidd
50

Alors que dans les cycles de publication précédents d'OS X, Valgrind a peut-être pris un certain temps avant d'obtenir une prise en charge raisonnable des fonctionnalités, la prise en charge de base d'OS X 10.10 est déjà disponible dans le coffre Valgrind en raison d'un travail important sur la pré-version Yosemite.

Depuis la liste de diffusion:

Il y a eu des efforts récemment pour améliorer le support de Valgrind pour Yosemite. Si vous développez sur Mac OS, vous voudrez peut-être essayer le coffre (svn co svn: //svn.valgrind.org/valgrind/trunk) et signaler toute casse que vous obtenez. La prise en charge de Yosemite est suffisante pour qu'au moins une grande application graphique (Firefox) fonctionne correctement. La prise en charge de la version précédente, 10.9 (Mavericks), est également considérablement améliorée.

Notez que le travail a ciblé uniquement les processus 64 bits. 32 bits pourrait fonctionner, et probablement mieux sur Mavericks, mais je pense que cela sera de plus en plus problématique sur Yosemite en raison du support du jeu d'instructions 32 bits x86 de Valgrind n'ayant pas progressé avec SSSE3.

Julian Seward

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

Divulgation complète: je suis l'un des nouveaux développeurs Valgrind qui a contribué à des correctifs pour prendre en charge OS X 10.10

Rhys Kidd
la source
14
+1 pour avoir contribué à valgrind. Je l'ai couru contre mon code. Il a souligné la cause d'un défaut de segmentation qui me rend fou depuis 24 heures car je n'ai pas pu trouver la cause.
ArtOfWarfare
11

Le workflow svn de Valerio téléchargera chaque branche qui consomme du temps et des ressources. Une meilleure procédure consiste à télécharger uniquement le coffre:

svn co svn://svn.valgrind.org/valgrind/trunk valgrind
cd valgrind
./autogen.sh
./configure
make
make install
Ed Millard
la source
Remarquer que le téléchargement prend beaucoup plus de temps que la source de publication .tar.bz ... est-ce juste la compression qui fait une si grande différence ou est-ce réellement le téléchargement de fichiers que ce ne serait pas autrement? (Je suppose que cela pourrait être le serveur différent ... ou la différence entre svn coet curl...)
ArtOfWarfare
+1: a très bien fonctionné. La seule chose que j'ai changée, c'est que j'ai fait sudo make installà la fin au lieu de make install. Je ne sais pas si c'était nécessaire ou non car je ne l'ai pas essayé à votre façon.
ArtOfWarfare
8

Voici mon point de vue. J'avais plus ou moins un mac propre avec xcode installé. Je l'ai compilé et exécuté avec ce qui suit:

# 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  

Notez que callgrind_control (de valgrind-3.11.0 SVN) ne semble pas fonctionner sur OS X, ressemble à un script perl et que l'outil de ligne de commande qu'il exécute (vgdb -l) imprime quelque chose d'inattendu que ce script ne fait pas ' t analyser correctement (il ne pourra donc pas trouver l'autre processus en cours d'exécution avec valgrind).

Alternativement, le script perl appelle simplement vgdb, nous pouvons également le faire directement (il suffit de déterminer manuellement votre identifiant de processus):

vgdb --pid=2858 instrumentation on
Kalmiya
la source
Brillant, c'était exactement ce dont j'avais besoin pour faire fonctionner valgrind sur Yosemite 10.10.4 La seule chose, la commande ci-dessus indiquant le commutateur -disable-tls a un caractère de trait d'unicode, plutôt que le trait d'union ascii normal.
Tim Kane
Heureux de pouvoir vous aider - merci d'avoir signalé le trait d'union (mis à jour). Ajout d'une solution de contournement pour le problème callgrind_control.
kalmiya le
7

A travaillé pour moi le 10.10.1:

svn co svn://svn.valgrind.org/valgrind
cd valgrind
./autogen.sh
./configure
make
make install
Valerio Schiavoni
la source
J'ai essayé ça. J'ai abandonné en téléchargeant beaucoup de tests non pertinents.
GrantJ
1
Les tests de régression sont une partie essentielle du programme Valgrind du point de vue du développeur. Bien qu'une version officielle de Valgrind n'ait pas encore été faite avec les récentes améliorations apportées à la prise en charge de la plate-forme OS X, vous devrez malheureusement télécharger une version avec les tests. Si pour une raison quelconque le téléchargement de SVN est gênant sur votre connexion, il existe des dépôts GitHub non officiels : github.com/liquid-mirror/valgrind
Rhys Kidd
7

Toutes les solutions énumérées ici ont échoué pour moi. Ce qui a finalement fonctionné, c'était d'utiliser des ports mac.

sudo port install valgrind-devel

bigtunacan
la source
3

Voici comment l'installer en utilisant des sources alternatives en plus du svn officiel (car il semble être disponible par intermittence).

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

1) Accédez à ce miroir git du svn et téléchargez la dernière version disponible: http://repo.or.cz/w/valgrind.git

2) Vous avez également besoin de VEX, alors prenez la dernière version ici: http://repo.or.cz/w/vex.git

3) Extrayez les deux. Placez tout le contenu du VEXdossier dans un dossier appelé VEX au niveau supérieur du répertoire valgrind.

cd dans le répertoire valgrind et exécutez ce qui suit:

Run ./autogen.sh

Run ./configure

Run make

Run sudo make install

Testez-le en exécutant valgrind --versionVous devez exécuter au moins 3.11.0 SVN pour que cela fonctionne sur Yosemite. Valgrind 3.11.0 SVN fonctionnant sous OSX Yosemite 10.10.4

user43633
la source
3

Je l'ai installé sur mon mac en installant homebrewpuis en exécutant ces 3 commandes dans le terminal.

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

PS: J'ai Os X El Capitan (10.11) mais cela devrait également fonctionner avec les versions précédentes.


la source
Tout ce qui est plus récent que cela donne: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

J'ai finalement fait travailler Valgrind sur mon OSX El Capitan 10.11.12 .

La réponse de l' utilisateur Kalmiya a fonctionné pour moi d'abord après avoir installé les outils de ligne de commande Xcode.

Tapez ceci dans le terminal:

xcode-select - installer

Suivez maintenant le message de Kalmiya , étape par étape. https://stackoverflow.com/a/30366798/3633475

Raphael
la source
my mac book pro a la dernière version de mac os déjà mise à jour et c'est 10.11.3 pas 10.11.12! aussi votre suggestion n'a pas fonctionné pour moi. c'est une erreurAssertion 'tst->os_state.pthread - magic_delta == self' failed.
SMMousavi
@SMMousavi L'erreur "Assertion 'test-> os_state.pthread - magic_delta == self'" a été corrigée pour Valgrind dans la version de développement SVN.
Rhys Kidd
@RhysKidd Merci beaucoup pour info :)
SMMousavi
0

Voici une autre version de l'installation de svn. Les précédents ne fonctionnaient pas pour moi, car je devais l'avoir automakeet l' autoconfinstaller, ce que je n'ai pas fait, même si la dernière version des outils de ligne de commande Xcode était installée.

J'ai obtenu ce qui suit sur ce site . Je devais aussi créer des liens automakeet autoconfaprès avoir fait brew install automakeet brew install autoconfen faisant brew link automakeet brew link autoconfpour que cela fonctionne.

# 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
Kyle Falconer
la source
1
Le 10.10.3 toujours pas de succès: $ 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 bien que le / usr / include / mach ait été créé sous root, lié symboliquement comme décrit, etc.
HopeNick
0

J'ai utilisé les instructions de kalmiya pour construire valgrind en tant que package conda pour OSX Yosemite. Pour ceux qui travaillent avec anaconda / conda, faites

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

Remarque: j'avais besoin d'installer les outils de ligne de commande comme décrit ci-dessous pour obtenir la compilation de valgrind.

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

PR
la source
0

J'ai compilé valgrind sur Yosemite, mais j'ai dû utiliser un hack pour le faire. Bien que je pense que vous devriez utiliser xcode-select installpour obtenir tous les outils de ligne de commande (après quoi valgrind devrait faire correctement), mais si vous ne voulez pas faire cela (par exemple, la taille des outils Xcode est trop grande), vous pouvez également obtenir le Darwin OSX code et copiez les fichiers suivants dans/usr/include/mach

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

Cela a permis une compilation et une installation propres, bien qu'il s'agisse d'un hack plutôt lâche.

Pete855217
la source