Yosemite và Valgrind


110

Bạn có thể cho tôi biết cách cài đặt valgrind trên yosemite không? Khi tôi cố gắng cài đặt nó, tôi nhận được "kiểm tra phiên bản hạt nhân ... không được hỗ trợ (14.0.0) config: error: Valgrind hoạt động trên Darwin 10.x, 11.x, 12.x và 13.x (Mac OS X 10,6 / 7/8/9) "

Không có đường dẫn chính thức hoặc bản cập nhật và tôi không tìm thấy bất kỳ thứ gì (ngoại trừ http://comments.gmane.org/gmane.comp.kde.devel.bugs/1553705 , nhưng họ không giải quyết được vấn đề đó).


4
Vấn đề được biết đến với homebrewvới một lưu ý không có thiện cảm: "Không chắc được cố định trong tương lai gần do thượng nguồn của sự phát triển thời gian biểu"
hrbrmstr

@hrbrmstr, cảm ơn bạn, tôi đã giải quyết được vấn đề này trong một thời gian bằng cách cài đặt Ubuntu trên máy ảo và sau đó cài đặt valgrind trên Ubuntu
Kozlovzxc

Câu trả lời:


287

Vì không có bản phát hành ổn định nào hỗ trợ Yosemite, bạn có thể cài đặt phiên bản phát triển mới nhất với

brew install --HEAD valgrind

5
Lệnh này không còn hoạt động. Tôi nhận được tin nhắn này: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
Mặc dù đây là giải pháp chính xác tại thời điểm đăng, Valgrind hiện hỗ trợ OS X Yosemite thông qua các kênh phát hành được ghi lại bằng tài liệu của ứng dụng.
Rhys Kidd

50

Mặc dù có thể xảy ra trường hợp trong các chu kỳ phát hành OS X trước đây mà Valgrind đã mất một khoảng thời gian trước khi đạt được hỗ trợ tính năng hợp lý, hỗ trợ OS X 10.10 cơ bản đã có sẵn trong thân cây Valgrind do công việc đáng kể trên Yosemite phát hành trước.

Từ danh sách gửi thư:

Gần đây đã có một số nỗ lực để cải thiện sự hỗ trợ của Valgrind dành cho Yosemite. Nếu bạn phát triển trên Mac OS, bạn có thể muốn dùng thử thân cây (svn co svn: //svn.valgrind.org/valgrind/trunk) và báo cáo bất kỳ sự cố nào bạn gặp phải. Hỗ trợ cho Yosemite đủ tốt để ít nhất một ứng dụng đồ họa lớn (Firefox) chạy được. Hỗ trợ cho bản phát hành trước, 10.9 (Mavericks), cũng được cải thiện đáng kể.

Lưu ý rằng công việc chỉ nhắm mục tiêu các quy trình 64 bit. 32 bit có thể hoạt động và có lẽ tốt hơn trên Mavericks, nhưng tôi nghi ngờ rằng nó sẽ ngày càng có vấn đề trên Yosemite do hỗ trợ tập lệnh x86 32 bit của Valgrind không có tiến trình thông qua SSSE3.

Julian Seward

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

Tiết lộ đầy đủ: Tôi là một trong những nhà phát triển Valgrind mới đã đóng góp các bản vá để hỗ trợ OS X 10.10


14
+1 vì đã đóng góp vào giá trị. Chạy nó với mã của tôi. Nó chỉ ra nguyên nhân của một lỗi phân đoạn đã khiến tôi phát điên trong 24 giờ qua mà tôi không thể tìm ra nguyên nhân.
ArtOfWarfare

11

Quy trình làm việc svn của Valerio sẽ tải xuống mọi nhánh gây tốn thời gian và tài nguyên. Một thủ tục tốt hơn là chỉ tải xuống thân cây:

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

Lưu ý rằng việc tải xuống tệp này mất nhiều thời gian hơn so với nguồn phát hành .tar.bz đã làm ... đó chỉ là việc nén tạo ra sự khác biệt lớn như vậy hay là nó thực sự tải xuống các tệp mà nó sẽ không? (Tôi đoán đó có thể là máy chủ khác ... hoặc sự khác biệt giữa svn cocurl...)
ArtOfWarfare

+1: Làm việc tuyệt vời. Chỉ có điều tôi đã thay đổi là tôi đã làm sudo make installở cuối thay vì make install. Không chắc liệu nó có cần thiết hay không vì tôi đã không thử theo cách của bạn.
ArtOfWarfare

8

Tôi đã bắt nó ở đây. Tôi ít nhiều đã có một chiếc mac sạch được cài đặt xcode. Đã biên dịch và chạy như sau:

# 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  

Lưu ý rằng callgrind_control (từ valgrind-3.11.0 SVN) dường như không hoạt động trên OS X, trông giống như một tập lệnh perl và công cụ dòng lệnh mà nó chạy (vgdb -l) in một cái gì đó 'bất ngờ' mà tập lệnh đó không làm được ' t phân tích cú pháp chính xác (vì vậy nó sẽ không thể tìm thấy quá trình khác đang chạy với valgrind).

Ngoài ra, tập lệnh perl chỉ gọi vgdb, chúng tôi cũng có thể trực tiếp làm điều đó (chỉ cần tìm ra id quy trình của bạn theo cách thủ công):

vgdb --pid=2858 instrumentation on

Thật tuyệt vời, đây chính xác là những gì tôi cần để chạy valgrind trên Yosemite 10.10.4 Chỉ có điều, lệnh trên biểu thị công tắc -disable-tls có một ký tự gạch nối unicode, thay vì gạch nối ascii thông thường.
Tim Kane

Rất vui vì tôi có thể giúp được - cảm ơn bạn đã chỉ ra dấu gạch ngang (đã cập nhật nó). Cũng đã thêm một giải pháp khắc phục sự cố callgrind_control.
kalmiya

7

Đã làm việc cho tôi trên 10.10.1:

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

Đã thử điều này. Tôi đã bỏ cuộc trong khi tải xuống rất nhiều bài kiểm tra không liên quan.
GrantJ

1
Các bài kiểm tra hồi quy là một phần thiết yếu của chương trình Valgrind từ quan điểm của nhà phát triển. Trong khi bản phát hành Valgrind chính thức vẫn chưa được thực hiện với những cải tiến gần đây đối với hỗ trợ nền tảng OS X, rất tiếc, bạn sẽ cần tải xuống một phiên bản có thử nghiệm. Nếu vì bất cứ lý do SVN tải về là rắc rối về kết nối của bạn, sau đó có không chính thức kho GitHub: github.com/liquid-mirror/valgrind
Rhys Kidd

7

Tất cả các giải pháp được liệt kê ở đây đều thất bại đối với tôi. Cuối cùng, những gì cuối cùng đã hoạt động là sử dụng các cổng mac.

sudo port install valgrind-devel


3

Đây là cách cài đặt nó bằng cách sử dụng các nguồn thay thế bên cạnh svn chính thức (vì nó có vẻ không liên tục).

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

1) Điều hướng đến git mirror này của svn và tải xuống phiên bản mới nhất hiện có: http://repo.or.cz/w/valgrind.git

2) Bạn cũng cần VEX, vì vậy hãy lấy phiên bản mới nhất tại đây: http://repo.or.cz/w/vex.git

3) Giải nén cả hai. Đặt toàn bộ nội dung của VEXthư mục vào một thư mục có tên là VEX ở cấp cao nhất của thư mục valgrind.

cd vào thư mục valgrind và thực hiện như sau:

Run ./autogen.sh

Run ./configure

Run make

Run sudo make install

Kiểm tra nó bằng cách chạy valgrind --versionBạn nên chạy ít nhất 3.11.0 SVN để nó hoạt động trên Yosemite. Valgrind 3.11.0 SVN chạy trên OSX Yosemite 10.10.4


3

Tôi đã cài đặt nó trên máy mac của mình bằng cách cài đặt homebrewvà sau đó chạy 3 lệnh này trong thiết bị đầu cuối.

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

Tái bút: Tôi có Os X El Capitan (10.11) nhưng điều này cũng sẽ hoạt động với các phiên bản trước.


Bất cứ điều gì mới hơn so với cung cấp cho: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

Cuối cùng tôi đã có Valgrind để làm việc trên OSX El Capitan 10.11.12 của mình .

Câu trả lời của người dùng Kalmiya có hiệu quả với tôi trước tiên sau khi tôi cài đặt các công cụ dòng lệnh Xcode.

Nhập cái này vào thiết bị đầu cuối:

xcode-select --install

Bây giờ hãy làm theo bài đăng của Kalmiya , từng bước một. https://stackoverflow.com/a/30366798/3633475


Mac book pro của tôi đã cập nhật phiên bản mac os mới nhất và nó là 10.11.3 chứ không phải 10.11.12! cũng đề nghị của bạn không làm việc cho tôi. đây là lỗiAssertion 'tst->os_state.pthread - magic_delta == self' failed.
SMMousavi

@SMMousavi Lỗi "Assertion 'test-> os_state.pthread - magic_delta == self'" đã được sửa cho Valgrind trong phiên bản phát triển SVN.
Rhys Kidd

@RhysKidd Cảm ơn rất nhiều để biết :)
SMMousavi

0

Đây là một bước khác về cài đặt svn. Những cái trước đó không hoạt động với tôi, vì tôi cần phải có automakeautoconfcài đặt, cái mà tôi không làm được, mặc dù tôi đã cài đặt phiên bản mới nhất của công cụ dòng lệnh Xcode.

Tôi nhận được những điều sau đây từ trang web này . Tôi cũng phải liên kết automakeautoconfsau khi làm brew install automakebrew install autoconfbằng cách làm brew link automakebrew link autoconfđể điều này hoạt động.

# 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
Vào ngày 10.10.3 vẫn không thành công: $ 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 mặc dù / usr / include / mach đã được tạo dưới gốc, được liên kết tượng trưng như mô tả, v.v.
HopeNick

0

Tôi đã sử dụng hướng dẫn của kalmiya để xây dựng valgrind dưới dạng gói chung cư cho OSX Yosemite. Đối với những người làm việc với anaconda / conda, chỉ cần làm

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

Lưu ý: Tôi cần cài đặt các công cụ dòng lệnh như mô tả bên dưới để biên dịch valgrind.

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


0

Tôi đã biên dịch valgrind trên Yosemite, nhưng phải sử dụng hack để làm như vậy. Mặc dù tôi nghĩ rằng bạn nên sử dụng xcode-select installđể có được tất cả các công cụ dòng lệnh (sau đó valgrind sẽ thực hiện đúng cách), nhưng nếu bạn không muốn làm điều này (ví dụ: kích thước của các công cụ Xcode quá lớn), bạn cũng có thể tải Darwin OSX mã và sao chép các tệp sau vào/usr/include/mach

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

Điều này cho phép biên dịch và cài đặt sạch sẽ, mặc dù lưu ý rằng đây là một bản hack khá chậm.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.