Yosemite e Valgrind


110

Puoi dirmi come installare valgrind su yosemite? Quando provo a installarlo ottengo "controllo per la versione del kernel ... non supportata (14.0.0) configure: errore: Valgrind funziona su Darwin 10.x, 11.x, 12.xe 13.x (Mac OS X 10.6 / 7/8/9) "

Non esiste un percorso o aggiornamento ufficiale e non ho trovato nulla (tranne http://comments.gmane.org/gmane.comp.kde.devel.bugs/1553705 , ma non hanno risolto il problema).


4
Problema noto con homebrewcon una nota antipatico: "Difficilmente essere fissato in un prossimo futuro a causa del monte orario sviluppo"
hrbrmstr

@hrbrmstr, grazie, ho risolto questo problema per un po 'di tempo installando Ubuntu sulla macchina virtuale e quindi installando valgrind su Ubuntu
Kozlovzxc

Risposte:


287

Poiché non esiste una versione stabile che supporti Yosemite, puoi installare l'ultima versione di sviluppo con

brew install --HEAD valgrind

5
Questo comando non funziona più. Ricevo questo messaggio: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
Sebbene questa fosse la risoluzione corretta al momento della pubblicazione, Valgrind ora supporta OS X Yosemite attraverso i canali di rilascio documentati dell'applicazione.
Rhys Kidd

50

Sebbene nei precedenti cicli di rilascio di OS X fosse possibile che Valgrind impiegasse un certo periodo di tempo prima di ottenere un ragionevole supporto per le funzionalità, il supporto di base per OS X 10.10 è già disponibile nel trunk Valgrind a causa del lavoro significativo su Yosemite pre-rilascio.

Dalla mailing list:

Recentemente sono stati compiuti alcuni sforzi per migliorare il supporto di Valgrind per Yosemite. Se sviluppi su Mac OS, potresti provare il trunk (svn co svn: //svn.valgrind.org/valgrind/trunk) e segnalare eventuali rotture. Il supporto per Yosemite è abbastanza buono da far funzionare correttamente almeno una grande applicazione grafica (Firefox). Anche il supporto per la versione precedente, 10.9 (Mavericks), è stato notevolmente migliorato.

Si noti che il lavoro ha preso di mira solo i processi a 64 bit. 32 bit potrebbe funzionare, e probabilmente meglio su Mavericks, ma sospetto che sarà sempre più problematico su Yosemite a causa del supporto del set di istruzioni x86 a 32 bit di Valgrind che non ha superato SSSE3.

Julian Seward

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

Divulgazione completa: sono uno dei nuovi sviluppatori Valgrind che hanno contribuito con le patch per supportare OS X 10.10


14
+1 per aver contribuito a valgrind. L'ho eseguito contro il mio codice. Ha sottolineato la causa di un errore di segmentazione che mi ha fatto impazzire nelle ultime 24 ore da quando non sono riuscito a trovare la causa.
ArtOfWarfare

11

Il flusso di lavoro svn di Valerio scaricherà ogni ramo che richiede tempo e risorse. Una procedura migliore è scaricare solo il tronco:

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

Notare che il download richiede molto più tempo rispetto alla fonte di rilascio .tar.bz ... è solo la compressione che fa una così grande differenza o è in realtà il download di file che altrimenti non sarebbe? (Immagino che potrebbe essere il server diverso ... o la differenza tra svn coe curl...)
ArtOfWarfare

+1: ha funzionato alla grande. L'unica cosa che ho cambiato è che ho fatto sudo make installalla fine invece di make install. Non sono sicuro se fosse necessario o meno perché non l'ho provato a modo tuo.
ArtOfWarfare

8

Ecco la mia opinione a riguardo. Più o meno avevo un Mac pulito con xcode installato. Ho compilato e funzionante con quanto segue:

# 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  

Nota che callgrind_control (da valgrind-3.11.0 SVN) non sembra funzionare su OS X, sembra uno script perl e lo strumento a riga di comando che esegue (vgdb -l) stampa qualcosa di 'inaspettato' che quello script non fa ' t analizzare correttamente (quindi non sarà in grado di trovare l'altro processo in esecuzione con valgrind).

In alternativa, lo script perl chiama semplicemente vgdb, possiamo anche farlo direttamente (basta capire manualmente il tuo process-id):

vgdb --pid=2858 instrumentation on

Fantastico, questo era esattamente ciò di cui avevo bisogno per far funzionare valgrind su Yosemite 10.10.4 L'unica cosa, il comando sopra che denota lo switch -disable-tls ha un carattere trattino Unicode, piuttosto che il normale trattino ASCII.
Tim Kane

Felice di poterti aiutare - grazie per aver sottolineato il trattino (aggiornato). Aggiunta anche una soluzione per il problema callgrind_control.
kalmiya

7

Ha funzionato per me il 10.10.1:

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

Ho provato questo. Ho rinunciato a scaricare molti test irrilevanti.
GrantJ

1
I test di regressione sono una parte essenziale del programma Valgrind dal punto di vista di uno sviluppatore. Sebbene una versione ufficiale di Valgrind debba ancora essere realizzata con i recenti miglioramenti al supporto della piattaforma OS X, sfortunatamente dovrai scaricare una versione con i test. Se per qualsiasi motivo il download di SVN è fastidioso sulla tua connessione, allora ci sono repository GitHub non ufficiali : github.com/liquid-mirror/valgrind
Rhys Kidd

7

Tutte le soluzioni elencate qui non sono riuscite per me. Ciò che alla fine ha funzionato è stato utilizzare le porte mac.

sudo port install valgrind-devel


3

Ecco come installarlo utilizzando fonti alternative oltre allo svn ufficiale (perché sembra essere disponibile in modo intermittente).

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

1) Vai a questo mirror git di svn e scarica l'ultima versione disponibile: http://repo.or.cz/w/valgrind.git

2) Hai bisogno anche di VEX, quindi prendi l'ultima versione qui: http://repo.or.cz/w/vex.git

3) Estrai entrambi. Metti l'intero contenuto della VEXcartella in una cartella chiamata VEX nel livello superiore della directory valgrind.

cd nella directory valgrind ed eseguire quanto segue:

Run ./autogen.sh

Run ./configure

Run make

Run sudo make install

valgrind --versionProvalo eseguendolo Dovresti eseguire almeno 3.11.0 SVN perché funzioni su Yosemite. Valgrind 3.11.0 SVN in esecuzione su OSX Yosemite 10.10.4


3

L'ho installato sul mio Mac installando homebrewe quindi eseguendo questi 3 comandi nel terminale.

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

PS: ho Os X El Capitan (10.11) ma dovrebbe funzionare anche con le versioni precedenti.


Qualunque cosa più recente di quella dà: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

Finalmente ho fatto lavorare Valgrind sul mio OSX El Capitan 10.11.12 .

La risposta dell'utente Kalmiya ha funzionato per me prima dopo aver installato gli strumenti della riga di comando di Xcode.

Digita questo nel terminale:

xcode-select --install

Ora segui il post di Kalmiya , passo dopo passo. https://stackoverflow.com/a/30366798/3633475


il mio mac book pro ha l'ultima versione di mac os già aggiornata ed è 10.11.3 non 10.11.12! anche il tuo suggerimento non ha funzionato per me. questo è un erroreAssertion 'tst->os_state.pthread - magic_delta == self' failed.
SMMousavi

@SMMousavi L'errore "Assertion 'test-> os_state.pthread - magic_delta == self'" è stato corretto per Valgrind nella versione di sviluppo SVN.
Rhys Kidd

@RhysKidd Grazie mille per le informazioni :)
SMMousavi

0

Ecco un'altra versione dell'installazione di svn. I precedenti non hanno funzionato per me, poiché avevo bisogno di avere automakeeautoconf installato, cosa che non avevo, anche se avevo installato l'ultima versione degli strumenti della riga di comando di Xcode.

Ho ricevuto quanto segue da questo sito . Ho anche dovuto collegare automakee autoconfdopo aver fatto brew install automakee brew install autoconffacendo brew link automakee brew link autoconfperché funzionasse.

# 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
Il 10.10.3 ancora senza successo: $ 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 sebbene / usr / include / mach sia stato creato sotto root, collegato simbolicamente come descritto ecc.
HopeNick

0

Ho usato le istruzioni di kalmiya per creare valgrind come pacchetto conda per OSX Yosemite. Per chi lavora con anaconda / conda, basta farlo

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

Nota a margine: avevo bisogno di installare gli strumenti della riga di comando come descritto di seguito per compilare valgrind.

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


0

Ho compilato valgrind su Yosemite, ma per farlo ho dovuto usare un hack. Anche se penso che dovresti usare xcode-select installper ottenere tutti gli strumenti della riga di comando (dopo di che valgrind dovrebbe fare correttamente), ma se non vuoi farlo (es. Dimensione degli strumenti Xcode troppo grande), puoi anche ottenere Darwin OSX code e copia i seguenti file in/usr/include/mach

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

Ciò ha consentito una compilazione e un'installazione pulite, sebbene si noti che è un trucco piuttosto lento.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.