Йосеміт і Вальгринд


110

Чи можете ви сказати мені, як встановити valgrind на йосеміт? Коли я намагаюся встановити його, я отримую "перевірку версії ядра ... непідтримувана (14.0.0) конфігурація: помилка: Valgrind працює на Darwin 10.x, 11.x, 12.x та 13.x (Mac OS X 10,6 / 7/8/9) "

Офіційного шляху чи оновлення немає, і я нічого не знайшов (крім http://comments.gmane.org/gmane.comp.kde.devel.bugs/1553705 , але вони не вирішили цю проблему).


4
Відома проблема з homebrewнесимпатичною приміткою: "Навряд чи це буде виправлено найближчим часом через графік розвитку вгору за течією"
hrbrmstr

@hrbrmstr, дякую, я вирішив цю проблему протягом деякого часу, встановивши Ubuntu на віртуальній машині, а потім встановив valgrind на Ubuntu
Kozlovzxc

Відповіді:


287

Оскільки не існує стабільної версії, яка підтримує Yosemite, ви можете встановити останню версію розробки за допомогою

brew install --HEAD valgrind

5
Ця команда більше не працює. Я отримую це повідомлення:Error: Failed to download resource "valgrind--patch" Download failed: https://gist.githubusercontent.com/jacknagel/cd26a902d72aabd0b51d/raw/1a61a328a87a728dccbeef0594f6fe335e9bf917/valgrind-sdk-paths-Makefile-am.diff
Андре Карон

1
Хоча це було правильним рішенням на момент публікації, Valgrind тепер підтримує OS X Yosemite за допомогою документально підтверджених каналів випуску програми.
Rhys Kidd

50

Незважаючи на те, що у минулих циклах випуску OS X, можливо, у минулого періоду, коли Valgrind потрібен певний проміжок часу, перш ніж досягти розумної підтримки функції, основна підтримка OS X 10.10 вже доступна в магістралі Valgrind завдяки значній роботі над випуском Yosemite.

Із списку розсилки:

Останнім часом були докладені певні зусилля, щоб покращити підтримку Valgrind для Yosemite. Якщо ви розробляєте Mac OS, ви можете спробувати використати магістраль (svn co svn: //svn.valgrind.org/valgrind/trunk) та повідомити про будь-які поломки, які ви отримали. Підтримка Yosemite досить хороша, що принаймні одне велике графічне додаток (Firefox) працює добре. Підтримка попереднього випуску 10.9 (Mavericks) також суттєво покращена.

Зауважте, що робота націлена лише на 64 бітні процеси. 32 біт може працювати і, можливо, краще на Mavericks, але я підозрюю, що це буде все більш проблематично для Yosemite через те, що підтримка набору 32-бітових x86 Valgrind не підтримує проходження SSSE3.

Джуліан Сьюард

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

Повне розкриття: Я один з нових розробників Valgrind, який надав патчі для підтримки OS X 10.10


14
+1 за внесок у вальгринд. Ранжував це проти мого коду. Він вказував на причину вини сегментації, яка зводила мене з розуму протягом останніх 24 годин, оскільки я не міг знайти причину.
ArtOfWarfare

11

Svn робочий процес Valerio завантажить кожну гілку, яка забирає багато часу та ресурсів. Краща процедура - завантажити лише магістраль:

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

Зауваживши, що завантаження цього займає набагато більше часу, ніж джерело випуску .tar.bz… це лише велике значення має стиснення чи це насправді завантаження файлів, які б інакше не було? (Я думаю, це може бути різний сервер ... або різниця між svn coі curl...)
ArtOfWarfare

+1: Працював чудово. Єдине, що я змінив - це я зробив sudo make installнаприкінці замість make install. Не впевнений, потрібно було це чи ні, як я не спробував це по-своєму.
ArtOfWarfare

8

Ось мій погляд на це. Я більш-менш мав чистий mac з встановленим xcode. Зробив компіляцію та запуск із наступним:

# 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 (від valgrind-3.11.0 SVN), схоже, не працює на OS X, виглядає як скрипт perl, а інструмент командного рядка, який він запускає (vgdb -l), виводить щось "несподіване", що цей сценарій не робить " t правильно проаналізуйте (тому він не зможе знайти інший процес, що працює з valgrind).

Крім того, сценарій perl просто викликає vgdb, ми також можемо це зробити безпосередньо (просто з’ясуйте свій ідентифікатор процесу вручну):

vgdb --pid=2858 instrumentation on

Блискуче, це саме те , що мені потрібно, щоб валліндж працював на Yosemite 10.10.4 Тільки, команда, що вказує на перемикач -disable-tls, має дефіс символу unicode, а не звичайний дефіс ascii.
Тім Кейн

Щасливий, що міг допомогти - дякую за вказівку дефісу (оновив його). Також додано обхід проблеми проблеми callgrind_control.
калмія

7

Працював для мене 10.10.1:

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

Спробував це. Я здався під час завантаження безлічі нерелевантних тестів.
GrantJ

1
Регресійні тести є важливою частиною програми Valgrind з точки зору розробника. Незважаючи на те, що офіційний реліз Valgrind ще має бути зроблений з останніми вдосконаленнями підтримки платформи OS X, на жаль, вам потрібно буде завантажити версію з тестами. Якщо з будь-якої причини завантаження SVN викликає занепокоєння у вашому з'єднанні, то є неофіційні сховища GitHub: github.com/liquid-mirror/valgrind
Rhys Kidd

7

Усі перераховані тут рішення для мене не вдалися. Нарешті, в кінцевому підсумку працювало, це використовувати мак-порти.

sudo port install valgrind-devel


3

Ось як його встановити, використовуючи альтернативні джерела, крім офіційного svn (оскільки він, як видається, доступний з періодичністю).

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

1) Перейдіть до цього git-дзеркала svn та завантажте останню доступну версію: http://repo.or.cz/w/valgrind.git

2) Вам також потрібен VEX, тому захопіть тут останню версію: http://repo.or.cz/w/vex.git

3) Витягнути їх обох. Помістіть весь вміст VEXпапки у папку під назвою VEX у верхньому рівні каталогу valgrind.

cd до каталогу valgrind та виконайте наступне:

Run ./autogen.sh

Run ./configure

Run make

Run sudo make install

Перевірте його, запустивши valgrind --versionВи повинні працювати принаймні 3.11.0 SVN, щоб він працював на Yosemite. Valgrind 3.11.0 SVN працює на OSX Yosemite 10.10.4


3

Я встановив його на своєму mac, встановивши homebrewі потім запустивши ці 3 команди в терміналі.

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

PS: У мене є Os X El Capitan (10.11), але це має працювати і з попередніми версіями.


Все, що більше, ніж це дає:valgrind: This formula either does not compile or function as expected on macOS versions newer than El Capitan due to an upstream incompatibility.
Олексій

2

Нарешті я змусив Valgrind працювати над моїм OSX El Capitan 10.11.12 .

Відповідь користувача Кальмії працював для мене першим після встановлення інструментів командного рядка Xcode.

Наберіть це в терміналі:

xcode-select - встановіть

Тепер дотримуйтесь поста Кальмії , крок за кроком. https://stackoverflow.com/a/30366798/3633475


у моєї книги mac pro є остання версія оновленої версії mac os 10.11.3, а не 10.11.12! також ваша пропозиція не працювала для мене. це помилкаAssertion 'tst->os_state.pthread - magic_delta == self' failed.
SMMousavi

@SMMousavi Помилка "Тест" -> os_state.pthread - magic_delta == self "" була виправлена ​​для Valgrind у версії розробки SVN.
Rhys Kidd

@RhysKidd Дякую за інформацію :)
SMMousavi

0

Ось ще один прийом для встановлення svn. Попередні не працювали для мене, оскільки мені потрібно було встановити automakeта autoconfвстановити, чого я не робив, хоч у мене була встановлена ​​остання версія інструментів командного рядка Xcode.

Я отримав наступне з цього сайту . Я також повинен був зв’язати automakeі autoconfпісля того, як робити, brew install automakeі brew install autoconfробити, brew link automakeі brew link autoconfдля цього працювати.

# 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 все ще не було успіху: $ 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 був створений під корінь, позначений символом, як описано тощо.
HopeNick

0

Я використав інструкції kalmiya для створення valgrind як пакету conda для OSX Yosemite. Для тих, хто працює з анакондою / кондою, просто зробіть це

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

Побічна примітка: мені потрібно було встановити інструменти командного рядка, як описано нижче, щоб скомпілювати valgrind.

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


0

У мене склався вальгринд на Yosemite, але для цього довелося скористатися хаком. Хоча я думаю, ви повинні використовувати xcode-select installдля отримання всіх інструментів командного рядка (після чого valgrind повинен зробити належним чином), але якщо ви не хочете цього робити (наприклад, розмір інструментів Xcode занадто великий), ви також можете отримати Darwin OSX код та скопіюйте у файл наступні файли/usr/include/mach

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

Це дозволило зробити чисту компіляцію та встановлення, хоча зауважте, це досить слабкий злом.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.