Yosemite dan Valgrind


110

Bisakah Anda memberi tahu saya cara menginstal valgrind di yosemite? Ketika saya mencoba untuk menginstalnya, saya mendapatkan "memeriksa versi kernel ... tidak didukung (14.0.0) konfigurasi: kesalahan: Valgrind bekerja di Darwin 10.x, 11.x, 12.x dan 13.x (Mac OS X 10.6 / 7/8/9) "

Tidak ada jalur atau pembaruan resmi, dan saya tidak menemukan apa pun (kecuali http://comments.gmane.org/gmane.comp.kde.devel.bugs/1553705 , tetapi mereka tidak menyelesaikan masalah itu).


4
Masalah yang diketahui dengan homebrewcatatan yang tidak simpatik: "Sepertinya tidak akan diperbaiki dalam waktu dekat karena jadwal pengembangan hulu"
hrbrmstr

@hrbrmstr, terima kasih, saya telah memecahkan masalah ini selama beberapa waktu dengan menginstal Ubuntu pada mesin virtual dan kemudian menginstal valgrind di Ubuntu
Kozlovzxc

Jawaban:


287

Karena tidak ada rilis stabil yang mendukung Yosemite, Anda dapat menginstal versi pengembangan terbaru dengan

brew install --HEAD valgrind

5
Perintah ini tidak lagi berfungsi. Saya mendapatkan pesan ini: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
Sementara ini adalah resolusi yang benar pada saat posting, Valgrind sekarang mendukung OS X Yosemite melalui saluran rilis terdokumentasi aplikasi.
Rhys Kidd

50

Meskipun mungkin terjadi dalam siklus rilis OS X yang lalu dimana Valgrind membutuhkan beberapa waktu sebelum mencapai dukungan fitur yang wajar, dukungan OS X 10.10 dasar sudah tersedia di bagasi Valgrind karena pekerjaan yang signifikan pada pra-rilis Yosemite.

Dari milis:

Ada beberapa upaya baru-baru ini untuk meningkatkan dukungan Valgrind untuk Yosemite. Jika Anda mengembangkan di Mac OS, Anda mungkin ingin mencoba trunk (svn co svn: //svn.valgrind.org/valgrind/trunk) dan melaporkan kerusakan yang Anda dapatkan. Dukungan untuk Yosemite cukup baik sehingga setidaknya satu aplikasi grafis besar (Firefox) berjalan dengan baik. Dukungan untuk rilis sebelumnya, 10.9 (Mavericks), juga meningkat secara substansial.

Perhatikan bahwa pekerjaan tersebut hanya menargetkan proses 64 bit. 32 bit mungkin berfungsi, dan mungkin lebih baik di Mavericks, tetapi saya curiga ini akan semakin bermasalah di Yosemite karena dukungan set instruksi x86 32 bit x86 Valgrind tidak berkembang melewati SSSE3.

Julian Seward

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

Pengungkapan penuh: Saya salah satu pengembang Valgrind baru yang menyumbangkan tambalan untuk mendukung OS X 10.10


14
1 untuk berkontribusi pada valgrind. Berlari melawan kode saya. Ini menunjukkan penyebab kesalahan segmentasi yang telah membuat saya gila selama 24 jam terakhir karena saya tidak dapat menemukan penyebabnya.
ArtOfWarfare

11

Alur kerja svn Valerio akan mengunduh setiap cabang yang memakan waktu dan sumber daya. Prosedur yang lebih baik adalah mengunduh bagasi saja:

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

Memperhatikan bahwa mengunduh ini membutuhkan waktu jauh lebih lama daripada sumber rilis .tar.bz ... apakah hanya kompresi yang membuat perbedaan besar atau sebenarnya mengunduh file yang tidak sebaliknya? (Saya kira ini bisa jadi server yang berbeda ... atau perbedaan antara svn codan curl...)
ArtOfWarfare

+1: Bekerja dengan baik. Satu-satunya hal yang saya ubah adalah saya lakukan sudo make installdi akhir, bukan make install. Tidak yakin apakah itu perlu atau tidak karena saya tidak mencobanya dengan cara Anda.
ArtOfWarfare

8

Ini pendapat saya. Saya kurang lebih memiliki mac bersih dengan xcode diinstal. Mengompilasi dan menjalankannya dengan yang berikut:

# 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  

Perhatikan bahwa callgrind_control (dari valgrind-3.11.0 SVN) tampaknya tidak berfungsi di OS X, tampak seperti skrip-perl dan alat baris perintah yang dijalankannya (vgdb -l) mencetak sesuatu yang 'tidak terduga' yang tidak dilakukan skrip itu ' t mengurai dengan benar (sehingga tidak dapat menemukan proses lain yang berjalan dengan valgrind).

Atau, skrip perl hanya memanggil vgdb, kita juga bisa langsung melakukannya (cari tahu id proses Anda secara manual):

vgdb --pid=2858 instrumentation on

Brilian, ini adalah persis apa yang saya butuhkan untuk mendapatkan Valgrind berjalan pada Yosemite 10.10.4 Hanya hal, perintah di atas yang menunjukkan -disable-tls beralih memiliki karakter unicode tanda hubung, daripada ascii tanda hubung biasa.
Tim Kane

Senang saya bisa membantu - terima kasih telah menunjukkan tanda hubung (memperbaruinya). Juga menambahkan solusi untuk masalah callgrind_control.
kalmiya

7

Bekerja untuk saya pada 10.10.1:

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

Sudah mencoba ini. Saya menyerah saat mengunduh banyak tes yang tidak relevan.
GrantJ

1
Tes regresi adalah bagian penting dari program Valgrind dari perspektif pengembang. Sementara rilis resmi Valgrind belum dibuat dengan peningkatan terbaru pada dukungan platform OS X, sayangnya Anda harus mengunduh versi dengan tes. Jika karena alasan apa pun unduhan SVN bermasalah pada koneksi Anda, maka ada repositori GitHub tidak resmi : github.com/liquid-mirror/valgrind
Rhys Kidd

7

Semua solusi yang tercantum di sini gagal untuk saya. Apa yang akhirnya berhasil adalah menggunakan port mac.

sudo port install valgrind-devel


3

Berikut cara menginstalnya menggunakan sumber alternatif selain svn resmi (karena tampaknya tersedia sewaktu-waktu).

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

1) Arahkan ke mirror git svn ini dan unduh versi terbaru yang tersedia: http://repo.or.cz/w/valgrind.git

2) Anda membutuhkan VEX juga, jadi ambil versi terbaru di sini: http://repo.or.cz/w/vex.git

3) Ekstrak keduanya. Letakkan seluruh konten VEXfolder ke dalam folder bernama VEX di tingkat atas direktori valgrind.

cd ke direktori valgrind, dan jalankan perintah berikut:

Run ./autogen.sh

Run ./configure

Run make

Run sudo make install

Uji dengan menjalankan valgrind --versionAnda harus menjalankan minimal 3.11.0 SVN agar dapat berfungsi di Yosemite. Valgrind 3.11.0 SVN berjalan di OSX Yosemite 10.10.4


3

Saya menginstalnya di mac saya dengan menginstal homebrewdan kemudian menjalankan 3 perintah ini di terminal.

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

PS: Saya punya Os X El Capitan (10.11) tapi ini juga bisa bekerja dengan versi sebelumnya.


Apa pun yang lebih baru dari itu memberi: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

Saya akhirnya mendapatkan Valgrind untuk mengerjakan OSX El Capitan 10.11.12 saya .

Jawaban pengguna Kalmiya berfungsi untuk saya terlebih dahulu setelah saya menginstal alat baris perintah Xcode.

Ketik ini di terminal:

xcode-pilih - instal

Sekarang ikuti posting Kalmiya , selangkah demi selangkah. https://stackoverflow.com/a/30366798/3633475


mac book pro saya memiliki versi terbaru dari mac os yang sudah diperbarui dan 10.11.3 bukan 10.11.12! juga saran Anda tidak berhasil untuk saya. ini adalah kesalahanAssertion 'tst->os_state.pthread - magic_delta == self' failed.
SMMousavi

@SMMousavi Kesalahan "Assertion 'test-> os_state.pthread - magic_delta == self'" telah diperbaiki untuk Valgrind dalam versi pengembangan SVN.
Rhys Kidd

@RhysKidd Terima kasih banyak atas infonya :)
SMMousavi

0

Berikut ini pandangan lain tentang svn install. Yang sebelumnya tidak berfungsi untuk saya, karena saya perlu memiliki automakedan autoconfmenginstal, yang tidak saya lakukan, meskipun saya telah menginstal versi terbaru dari alat baris perintah Xcode.

Saya mendapat yang berikut dari situs ini . Saya juga harus menghubungkan automakedan autoconfsetelah melakukan brew install automakedan brew install autoconfdengan melakukan brew link automakedan brew link autoconfagar ini berhasil.

# 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
Pada 10.10.3 masih tidak berhasil: $ 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 meskipun / usr / include / mach dibuat di bawah root, terhubung seperti yang dijelaskan, dll.
HopeNick

0

Saya telah menggunakan instruksi kalmiya untuk membangun valgrind sebagai paket conda untuk OSX Yosemite. Bagi yang bekerja dengan anaconda / conda, lakukan saja

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

Catatan tambahan: Saya perlu menginstal alat baris perintah seperti yang dijelaskan di bawah ini untuk mengkompilasi valgrind.

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


0

Saya mengumpulkan valgrind di Yosemite, tetapi harus menggunakan peretasan untuk melakukannya. Meskipun saya pikir Anda harus menggunakan xcode-select installuntuk mendapatkan semua alat baris perintah (setelah itu valgrind harus membuat dengan benar), tetapi jika Anda tidak ingin melakukan ini (misalnya ukuran alat Xcode terlalu besar), Anda juga bisa mendapatkan OSX Darwin kode dan salin file berikut ke/usr/include/mach

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

Ini memungkinkan kompilasi dan pemasangan bersih, meskipun perhatikan ini adalah peretasan yang agak lambat.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.