Yosemite ve Valgrind


110

Valgrind'i yosemite'ye nasıl yükleyeceğimi söyler misin? Yüklemeye çalıştığımda "çekirdek sürümünü kontrol ediyorum ... desteklenmiyor (14.0.0) configure: error: Valgrind Darwin 10.x, 11.x, 12.x ve 13.x (Mac OS X 10.6 / 7/8/9) "

Resmi bir yol veya güncelleme yok ve hiçbir şey bulamadım ( http://comments.gmane.org/gmane.comp.kde.devel.bugs/1553705 dışında , ancak bu sorunu çözmediler).


4
Bilinen sorun ile homebrewbir anlayışsız not ile: "Muhtemel nedeniyle Memba geliştirme takvime bağlı yakın gelecekte düzeltilmesi"
hrbrmstr

@hrbrmstr, teşekkür ederim, bu sorunu bir süreliğine Ubuntu'yu sanal makineye kurarak ve ardından valgrind'i Ubuntu'ya
yükleyerek çözdüm

Yanıtlar:


287

Yosemite'i destekleyen kararlı bir sürüm olmadığından, en son geliştirme sürümünü şu şekilde yükleyebilirsiniz:

brew install --HEAD valgrind

5
Bu komut artık çalışmıyor. Bu mesajı alıyorum: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
Yayınlama sırasında doğru çözüm bu olsa da, Valgrind artık uygulamanın belgelenmiş sürüm kanalları aracılığıyla OS X Yosemite'yi destekliyor.
Rhys Kidd

50

Geçtiğimiz OS X sürüm döngülerinde Valgrind'in makul özellik desteğine ulaşmadan önce biraz zaman aldığı durum söz konusu olsa da, sürüm öncesi Yosemite üzerindeki önemli çalışmalar nedeniyle temel OS X 10.10 desteği Valgrind gövdesinde zaten mevcuttur.

Posta listesinden:

Son zamanlarda Valgrind'in Yosemite'e verdiği desteği iyileştirmek için bazı çabalar oldu. Mac OS üzerinde geliştirirseniz, ana gövdeyi (svn co svn: //svn.valgrind.org/valgrind/trunk) denemek ve aldığınız herhangi bir kırılmayı rapor etmek isteyebilirsiniz. Yosemite desteği, en az bir büyük grafik uygulamasının (Firefox) sorunsuz çalışmasını sağlayacak kadar iyidir. Önceki sürüm olan 10.9 (Mavericks) desteği de önemli ölçüde iyileştirildi.

Çalışmanın yalnızca 64 bit işlemleri hedeflediğini unutmayın. 32 bit işe yarayabilir ve muhtemelen Mavericks'te daha iyi olabilir, ancak Valgrind'in 32 bit x86 komut seti desteğinin SSSE3'ü geçmemiş olması nedeniyle Yosemite'de giderek daha sorunlu olacağından şüpheleniyorum.

Julian Seward

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

Tam açıklama: OS X 10.10'u desteklemek için yamalara katkıda bulunan yeni Valgrind geliştiricilerinden biriyim


14
Valgrind'e katkıda bulunmak için +1. Benim koduma karşı koydu. Nedenini bulamadığımdan beri son 24 saattir beni çılgına çeviren bir bölümleme hatasının nedenine işaret etti.
ArtOfWarfare

11

Valerio'nun svn iş akışı, zaman ve kaynak tüketen her dalı indirecektir. Daha iyi bir prosedür, sadece bagajı indirmektir:

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

Bunun indirilmesinin .tar.bz sürüm kaynağından çok daha uzun sürdüğünü fark edersek ... bu kadar büyük bir fark yaratan sadece sıkıştırma mı yoksa başka türlü olmayacak dosyaları mı indiriyor? (Sanırım farklı bir sunucu olabilir ... veya svn cove curl... arasındaki fark olabilir )
ArtOfWarfare

+1: Harika çalıştı. Değiştirdiğim tek şey sudo make install, yerine sonunda yaptığım oldu make install. Sizin yönteminizle denemediğim için gerekli olup olmadığından emin değilim.
ArtOfWarfare

8

İşte benim görüşüm. Az ya da çok, xcode kurulu temiz bir Mac'im vardı. Aşağıdakilerle derleyip çalıştırdı:

# 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'ün (valgrind-3.11.0 SVN'den) OS X üzerinde çalışmadığını, bir perl betiğine benzediğini ve çalıştırdığı komut satırı aracının (vgdb -l) bu komut dosyasının yapmadığı 'beklenmedik' bir şey yazdırdığını unutmayın. t Doğru ayrıştırın (böylece valgrind ile çalışan diğer süreci bulamayacaktır).

Alternatif olarak, perl betiği sadece vgdb'yi çağırır, bunu doğrudan da yapabiliriz (sadece işlem kimliğinizi manuel olarak belirleyin):

vgdb --pid=2858 instrumentation on

Harika, bu tam olarak Yosemite 10.10.4'te valgrind'i çalıştırmak için ihtiyacım olan şeydi. Tek şey, yukarıdaki -disable-tls anahtarını belirten komut, normal ascii tiresi yerine bir unicode tire karakterine sahip.
Tim Kane

Yardımcı olabildiğim için mutluyum - tire işaretini gösterdiğin için teşekkürler (güncelledi). Ayrıca callgrind_control sorunu için bir çözüm eklendi.
kalmiya

7

10.10.1'de benim için çalıştı:

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

Bunu denedim. Bir sürü alakasız test indirirken pes ettim.
GrantJ

1
Regresyon testleri, geliştiricinin bakış açısından Valgrind programının önemli bir parçasıdır. Resmi bir Valgrind sürümü henüz OS X platform desteğinde yapılan son iyileştirmelerle yapılmamış olsa da, maalesef testleri içeren bir sürümü indirmeniz gerekecek. Herhangi bir nedenle SVN indirmesi bağlantınızda sorun yaratıyorsa , resmi olmayan GitHub depoları vardır: github.com/liquid-mirror/valgrind
Rhys Kidd

7

Burada listelenen tüm çözümler benim için başarısız oldu. Sonunda işe yarayan şey, mac bağlantı noktalarını kullanmaktı.

sudo port install valgrind-devel


3

Resmi svn'nin yanı sıra alternatif kaynaklar kullanarak nasıl kurulacağı aşağıda açıklanmıştır (çünkü aralıklı olarak kullanılabilir görünüyor).

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

1) svn'nin bu git aynasına gidin ve mevcut en son sürümü indirin: http://repo.or.cz/w/valgrind.git

2) VEX'e de ihtiyacınız var, bu yüzden en son sürümü buradan edinin: http://repo.or.cz/w/vex.git

3) İkisini de çıkarın. VEXKlasörün tüm içeriğini , valgrind dizininin en üst düzeyindeki VEX adlı bir klasöre koyun .

cd valgrind dizinine gidin ve aşağıdakileri yürütün:

Run ./autogen.sh

Run ./configure

Run make

Run sudo make install

valgrind --versionÇalıştırarak test edin Yosemite üzerinde çalışması için en az 3.11.0 SVN çalıştırmalısınız. Valgrind 3.11.0 SVN, OSX Yosemite 10.10.4 üzerinde çalışıyor


3

Mac'ime homebrewbu 3 komutu terminalde kurup çalıştırarak kurdum .

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

Not: Os X El Capitan'a (10.11) sahibim ama bu da önceki sürümlerle de çalışmalı.


Bundan daha yeni bir şey verir: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

Sonunda got Valgrind benim üzerinde çalışmaya OSX El Capitan 10.11.12 .

Kullanıcı Kalmiya'nın cevabı, Xcode komut satırı araçlarını kurduktan sonra ilk olarak benim için çalıştı.

Bunu terminale yazın:

xcode-select - install

Şimdi Kalmiya'nın gönderisini adım adım takip edin . https://stackoverflow.com/a/30366798/3633475


mac book pro'mda en son mac os sürümü zaten güncellendi ve 10.11.3 değil, 10.11.12! Ayrıca öneriniz benim için işe yaramadı. bu bir hatadırAssertion 'tst->os_state.pthread - magic_delta == self' failed.
SMMousavi

@SMMousavi Valgrind için SVN geliştirme sürümünde "Onay 'testi-> os_state.pthread - magic_delta == self'" hatası düzeltildi.
Rhys Kidd

@RhysKidd Bilgi için çok teşekkürler :)
SMMousavi

0

İşte svn kurulumunun başka bir versiyonu. Xcode komut satırı araçlarının en son sürümüne sahip olmama rağmen, sahip olmam automakeve autoconfyüklemem gerektiğinden önceki sürümler benim için işe yaramadı.

Bu siteden aşağıdakileri aldım . Ayrıca bağlantıya zorunda kaldı automakeve autoconfyaptıktan sonra brew install automakeve brew install autoconfyaparak brew link automakeve brew link autoconfbunun için çalışmaya.

# 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'te hala başarı yok: $ 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 / include / mach kök altında oluşturulmuş olsa da, açıklandığı gibi
sembolik bağlantı

0

Valgrind'i OSX Yosemite için bir conda paketi olarak oluşturmak için kalmiya'nın talimatlarını kullandım. Anaconda / conda ile çalışanlar için

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

Yan not: Valgrind'i derlemek için komut satırı araçlarını aşağıda açıklandığı gibi kurmam gerekiyordu.

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


0

Yosemite'de valgrind'i derledim, ancak bunu yapmak için bir hack kullanmak zorunda kaldım. xcode-select installTüm komut satırı araçlarını (bundan sonra valgrind düzgün bir şekilde yapması gerekir) almak için kullanmanız gerektiğini düşünüyorum , ancak bunu yapmak istemiyorsanız (örn. Xcode araçlarının boyutu çok büyük), Darwin OSX de alabilirsiniz. aşağıdaki dosyaları kodlayın ve kopyalayın/usr/include/mach

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

Bu, temiz bir derleme ve kuruluma izin verir, ancak bunun oldukça gevşek bir hack olduğunu unutmayın.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.