Yosemite und Valgrind


110

Können Sie mir sagen, wie man Valgrind auf Yosemite installiert? Wenn ich versuche, es zu installieren, wird "nach der Kernel-Version gesucht ... nicht unterstützt (14.0.0) configure: error: Valgrind funktioniert unter Darwin 10.x, 11.x, 12.x und 13.x (Mac OS X) 10,6 / 7/8/9)

Es gibt keinen offiziellen Pfad oder ein offizielles Update und ich habe nichts gefunden (außer http://comments.gmane.org/gmane.comp.kde.devel.bugs/1553705 , aber sie haben dieses Problem nicht gelöst).


4
Bekanntes Problem mit homebreweinem unsympathischen Hinweis: "Es ist unwahrscheinlich, dass es in naher Zukunft aufgrund des Entwicklungsplans von Upstream
behoben

@hrbrmstr, danke, ich habe dieses Problem für einige Zeit gelöst, indem ich Ubuntu auf einer virtuellen Maschine installiert und dann Valgrind auf Ubuntu installiert habe
Kozlovzxc

Antworten:


287

Da es keine stabile Version gibt, die Yosemite unterstützt, können Sie die neueste Entwicklungsversion mit installieren

brew install --HEAD valgrind

5
Dieser Befehl funktioniert nicht mehr. Ich bekomme diese Nachricht: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
Während dies zum Zeitpunkt der Veröffentlichung die richtige Auflösung war, unterstützt Valgrind jetzt OS X Yosemite über die dokumentierten Release-Kanäle der Anwendung.
Rhys Kidd

50

Während Valgrind in früheren OS X-Release-Zyklen möglicherweise einige Zeit gebraucht hat, um eine angemessene Funktionsunterstützung zu erreichen, ist die grundlegende OS X 10.10-Unterstützung im Valgrind-Trunk bereits verfügbar, da umfangreiche Arbeiten an Yosemite vor der Veröffentlichung durchgeführt wurden.

Aus der Mailingliste:

In letzter Zeit wurden einige Anstrengungen unternommen, um Valgrinds Unterstützung für Yosemite zu verbessern. Wenn Sie unter Mac OS entwickeln, möchten Sie möglicherweise den Trunk ausprobieren (svn co svn: //svn.valgrind.org/valgrind/trunk) und eventuelle Schäden melden. Die Unterstützung für Yosemite ist gut genug, damit mindestens eine große grafische Anwendung (Firefox) in Ordnung ist. Die Unterstützung für die vorherige Version 10.9 (Mavericks) wurde ebenfalls erheblich verbessert.

Beachten Sie, dass die Arbeit nur 64-Bit-Prozesse zum Ziel hat. 32-Bit könnte funktionieren und wahrscheinlich besser bei Mavericks, aber ich vermute, dass es bei Yosemite zunehmend problematisch wird, da Valgrinds 32-Bit-x86-Befehlssatzunterstützung SSSE3 nicht bestanden hat.

Julian Seward

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

Vollständige Offenlegung: Ich bin einer der neuen Valgrind-Entwickler, die Patches zur Unterstützung von OS X 10.10 beigesteuert haben


14
+1 für den Beitrag zum Valgrind. Lief es gegen meinen Code. Es wurde auf die Ursache eines Segmentierungsfehlers hingewiesen, der mich in den letzten 24 Stunden verrückt gemacht hat, seit ich die Ursache nicht finden konnte.
ArtOfWarfare

11

Der SVN-Workflow von Valerio lädt jeden Zweig herunter, der zeit- und ressourcenintensiv ist. Ein besseres Verfahren besteht darin, nur den Trunk herunterzuladen:

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

Zu bemerken, dass das Herunterladen viel länger dauert als die Release-Quelle .tar.bz ... macht nur die Komprimierung einen so großen Unterschied oder werden tatsächlich Dateien heruntergeladen, die es sonst nicht gäbe? (Ich denke, es könnte der andere Server sein ... oder der Unterschied zwischen svn cound curl...)
ArtOfWarfare

+1: Hat super funktioniert. Das einzige, was ich geändert habe, war, dass ich es sudo make installam Ende getan habe make install. Ich bin mir nicht sicher, ob es notwendig war oder nicht, da ich es nicht so ausprobiert habe.
ArtOfWarfare

8

Hier ist meine Einstellung dazu. Ich hatte mehr oder weniger einen sauberen Mac mit installiertem xcode. Habe es mit folgendem kompilieren und laufen lassen:

# 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  

Beachten Sie, dass callgrind_control (von valgrind-3.11.0 SVN) unter OS X anscheinend nicht funktioniert, wie ein Perl-Skript aussieht und das von ihm ausgeführte Befehlszeilentool (vgdb -l) etwas 'Unerwartetes' druckt, was dieses Skript nicht tut. ' t korrekt analysieren (daher kann der andere Prozess, der mit valgrind ausgeführt wird, nicht gefunden werden).

Alternativ ruft das Perl-Skript nur vgdb auf. Dies können wir auch direkt tun (ermitteln Sie Ihre Prozess-ID einfach manuell):

vgdb --pid=2858 instrumentation on

Genial, genau das war es , was ich brauche, um Valgrind auf Yosemite 10.10.4 zum Laufen zu bringen. Der obige Befehl, der den Schalter -disable-tls bezeichnet, hat nur einen Unicode-Bindestrich und keinen regulären ASCII-Bindestrich.
Tim Kane

Ich bin froh, dass ich helfen konnte - danke, dass Sie auf den Bindestrich hingewiesen haben (aktualisiert). Außerdem wurde eine Problemumgehung für das Problem callgrind_control hinzugefügt.
Kalmiya

7

Arbeitete für mich am 10.10.1:

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

Versuchte dies. Ich habe beim Herunterladen vieler irrelevanter Tests aufgegeben.
GrantJ

1
Die Regressionstests sind aus Entwicklersicht ein wesentlicher Bestandteil des Valgrind-Programms. Obwohl eine offizielle Valgrind-Version mit den jüngsten Verbesserungen der OS X-Plattformunterstützung noch nicht veröffentlicht wurde, müssen Sie leider eine Version mit den Tests herunterladen. Wenn der SVN-Download aus irgendeinem Grund für Ihre Verbindung problematisch ist, gibt es inoffizielle GitHub-Repositories: github.com/liquid-mirror/valgrind
Rhys Kidd

7

Alle hier aufgeführten Lösungen sind für mich fehlgeschlagen. Was schließlich funktionierte, war die Verwendung von Mac-Ports.

sudo port install valgrind-devel


3

Hier erfahren Sie, wie Sie es mithilfe alternativer Quellen neben dem offiziellen SVN installieren (da es zeitweise verfügbar zu sein scheint).

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

1) Navigieren Sie zu diesem Git-Spiegel des SVN und laden Sie die neueste verfügbare Version herunter: http://repo.or.cz/w/valgrind.git

2) Sie benötigen auch VEX, also holen Sie sich hier die neueste Version: http://repo.or.cz/w/vex.git

3) Extrahieren Sie beide. Legen Sie den gesamten Inhalt des VEXOrdners in einem Ordner namens VEX in der obersten Ebene des Verzeichnisses valgrind ab.

cd in das valgrind-Verzeichnis und führen Sie Folgendes aus:

Run ./autogen.sh

Run ./configure

Run make

Run sudo make install

Testen Sie es, indem valgrind --versionSie es ausführen. Sie sollten mindestens 3.11.0 SVN ausführen, damit es auf Yosemite funktioniert. Valgrind 3.11.0 SVN unter OSX Yosemite 10.10.4


3

Ich habe es auf meinem Mac installiert, indem ich homebrewdiese 3 Befehle im Terminal installiert und dann ausgeführt habe.

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

PS: Ich habe Os X El Capitan (10.11), aber dies sollte auch mit früheren Versionen funktionieren.


Alles neuere als das gibt: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

Ich habe Valgrind endlich dazu gebracht, an meinem OSX El Capitan 10.11.12 zu arbeiten .

Die Antwort von Benutzer Kalmiya funktionierte zuerst für mich, nachdem ich die Xcode- Befehlszeilentools installiert hatte.

Geben Sie dies in das Terminal ein:

xcode-select --install

Nun folgen Kalmiya ‚s Post, Schritt für Schritt. https://stackoverflow.com/a/30366798/3633475


Mein Mac Book Pro hat die neueste Version von Mac OS bereits aktualisiert und es ist 10.11.3 nicht 10.11.12! auch dein vorschlag hat bei mir nicht funktioniert. Dies ist ein FehlerAssertion 'tst->os_state.pthread - magic_delta == self' failed.
SMMousavi

@SMMousavi Der Fehler "Assertion 'test-> os_state.pthread - magic_delta == self'" wurde für Valgrind in der SVN-Entwicklungsversion behoben.
Rhys Kidd

@ RhysKidd Vielen Dank für Info :)
SMMousavi

0

Hier ist eine weitere Einstellung zur svn-Installation. Die vorherigen funktionierten bei mir nicht, da ich sie haben automakeund autoconfinstallieren musste, was ich nicht tat, obwohl ich die neueste Version der Xcode-Befehlszeilentools installiert hatte.

Ich habe folgendes von dieser Seite bekommen . Ich hatte auch zu Link automakeund autoconfnach tun brew install automakeund brew install autoconfindem brew link automakeund brew link autoconffür diese Arbeit.

# 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
Am 10.10.3 immer noch kein Erfolg: $ 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 obwohl das / usr / include / mach unter root erstellt wurde, wie beschrieben
symlinked

0

Ich habe die Anweisungen von kalmiya verwendet, um Valgrind als Conda-Paket für OSX Yosemite zu erstellen. Für diejenigen, die mit Anaconda / Conda arbeiten, tun Sie einfach

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

Randnotiz: Ich musste die Befehlszeilentools wie unten beschrieben installieren, um valgrind kompilieren zu können.

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


0

Ich habe Valgrind auf Yosemite kompiliert, musste aber einen Hack verwenden, um dies zu tun. Ich denke, Sie sollten verwenden xcode-select install, um alle Befehlszeilen-Tools abzurufen (nach denen valgrind ordnungsgemäß ausgeführt werden sollte), aber wenn Sie dies nicht möchten (z. B. Größe der Xcode-Tools zu groß), können Sie auch Darwin OSX herunterladen Code und kopieren Sie die folgenden Dateien nach/usr/include/mach

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

Dies ermöglichte ein sauberes Kompilieren und Installieren, obwohl es sich um einen eher lockeren Hack handelt.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.