요세미티와 발 그린 드


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를 설치 한 다음 Ubuntu에
valgrind

답변:


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
André Caron

1
게시 당시 올바른 해결책 이었지만 Valgrind는 이제 애플리케이션의 문서화 된 릴리스 채널을 통해 OS X Yosemite를 지원합니다.
Rhys Kidd

50

Valgrind가 합리적인 기능 지원을 달성하기 전에 일정 시간이 걸렸던 과거 OS X 릴리스주기의 경우 였을 수 있지만, 사전 릴리스 Yosemite에 대한 상당한 작업으로 인해 Valgrind 트렁크에서 기본 OS X 10.10 지원이 이미 제공되고 있습니다.

메일 링리스트에서 :

최근 요세미티에 대한 Valgrind의 지원을 개선하기위한 노력이있었습니다. Mac OS에서 개발하는 경우 트렁크 (svn co svn : //svn.valgrind.org/valgrind/trunk)를 사용해보고 파손 된 부분을보고 할 수 있습니다. Yosemite에 대한 지원은 하나 이상의 대형 그래픽 응용 프로그램 (Firefox)이 정상적으로 실행될만큼 충분합니다. 이전 릴리스 인 10.9 (Mavericks)에 대한 지원도 크게 향상되었습니다.

이 작업은 64 비트 프로세스 만 대상으로합니다. 32 비트가 작동 할 수도 있고 Mavericks에서 더 나을 수도 있지만, SSSE3를 통과하지 못한 Valgrind의 32 비트 x86 명령어 세트 지원으로 인해 Yosemite에서 점점 더 문제가 될 것이라고 생각합니다.

줄리안 수어드

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

전체 공개 : 저는 OS X 10.10을 지원하기 위해 패치를 제공 한 새로운 Valgrind 개발자 중 한 명입니다.


14
valgrind에 기여하면 +1. 내 코드에 대해 실행했습니다. 원인을 찾을 수 없어 지난 24 시간 동안 나를 미치게했던 세분화 오류의 원인을 지적했습니다.
ArtOfWarfare

11

Valerio의 svn 워크 플로는 시간과 리소스가 많이 소모되는 모든 브랜치를 다운로드합니다. 더 나은 절차는 트렁크 만 다운로드하는 것입니다.

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

이 파일을 다운로드하는 데 .tar.bz가 한 것보다 훨씬 오래 걸린다는 사실을 알아 차리면 ... 그렇게 큰 차이를 만드는 것은 압축 일 뿐입니 까 아니면 실제로는 그렇지 않은 파일을 다운로드합니까? (나는 그것이 다른 서버 ... 나 사이의 차이가 될 수 추측 svn cocurl...)
ArtOfWarfare

+1 : 잘했습니다. 나는이 변경 유일한 것은 내가 한이었다 sudo make install대신의 말에 make install. 내가 당신의 방식으로 그것을 시도하지 않았기 때문에 그것이 필요한지 아닌지 확실하지 않습니다.
ArtOfWarfare 2015

8

여기에 내 의견이 있습니다. xcode가 설치된 깨끗한 Mac이 다소 있습니다. 다음과 같이 컴파일하고 실행했습니다.

# 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를 호출하기 만하면 직접 수행 할 수도 있습니다 (프로세스 ID를 수동으로 파악).

vgdb --pid=2858 instrumentation on

훌륭합니다. 이것이 바로 Yosemite 10.10.4에서 valgrind를 실행하는 데 필요한 것입니다. 위의 명령에 -disable-tls 스위치를 나타내는 명령은 일반 ASCII 하이픈이 아닌 유니 코드 하이픈 문자가 있습니다.
Tim Kane

도와 드릴 수있어서 기쁩니다. 하이픈을 지적 해 주셔서 감사합니다 (업데이트 됨). 또한 callgrind_control 문제에 대한 해결 방법을 추가했습니다.
kalmiya

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 키드

7

여기에 나열된 모든 솔루션이 실패했습니다. 마침내 작동하게 된 것은 Mac 포트를 사용하는 것이 었습니다.

sudo port install valgrind-devel


3

공식 svn 이외의 다른 소스를 사용하여 설치하는 방법은 다음과 같습니다 (간헐적으로 사용할 수있는 것처럼 보이기 때문에).

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

1) svn의이 git 미러로 이동하여 사용 가능한 최신 버전을 다운로드합니다. http://repo.or.cz/w/valgrind.git

2) VEX도 필요하므로 여기에서 최신 버전을 다운로드하십시오. http://repo.or.cz/w/vex.git

3) 둘 다 추출하십시오. VEX폴더 의 전체 내용을 valgrind 디렉터리의 최상위 수준에있는 VEX라는 폴더에 넣습니다.

cd valgrind 디렉터리로 이동하고 다음을 실행합니다.

Run ./autogen.sh

Run ./configure

Run make

Run sudo make install

실행하여 테스트하십시오 valgrind --versionYosemite에서 작동하려면 최소 3.11.0 SVN을 실행해야합니다. OSX Yosemite 10.10.4에서 실행되는 Valgrind 3.11.0 SVN


3

homebrew터미널에이 3 개의 명령 을 설치 하고 실행 하여 Mac에 설치했습니다 .

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

추신 : 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

마침내 ValgrindOSX El Capitan 10.11.12 에서 작업하게되었습니다 .

사용자 Kalmiya 의 대답은 Xcode 명령 줄 도구를 설치 한 후 처음으로 저에게 효과적이었습니다 .

터미널에 다음을 입력하십시오.

xcode-select --install

이제 Kalmiya 의 게시물을 단계별로 따르십시오 . https://stackoverflow.com/a/30366798/3633475


내 mac book pro에는 이미 업데이트 된 최신 버전의 mac os가 있으며 10.11.12가 아닌 10.11.3입니다! 또한 귀하의 제안이 저에게 효과적이지 않았습니다. 이 오류입니다Assertion 'tst->os_state.pthread - magic_delta == self' failed.
SMMousavi

@SMMousavi SVN 개발 버전에서 Valgrind에 대한 "Assertion 'test-> os_state.pthread-magic_delta == self'"오류가 수정되었습니다.
Rhys Kidd

감사에게 :) 정보를 많이 @RhysKidd
SMMousavi

0

다음은 svn 설치에 대한 또 다른 설명입니다. 이전 버전은 Xcode 명령 줄 도구의 최신 버전을 설치 했음에도 불구 automake하고 autoconf설치 및 설치 해야했기 때문에 작동 하지 않았습니다.

이 사이트 에서 다음을 얻었습니다 . 또한 링크에 한 automake하고 autoconf수행 한 후 brew install automakebrew install autoconf수행하여 brew link automakebrew 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를 OSX Yosemite 용 conda 패키지로 빌드했습니다. 아나콘다 / 콘다로 작업하는 사람들은

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

참고 사항 : valgrind를 컴파일하려면 아래 설명 된대로 명령 줄 도구를 설치해야했습니다.

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


0

나는 Yosemite에서 valgrind를 컴파일했지만 그렇게하기 위해 해킹을 사용해야했습니다. xcode-select install모든 명령 줄 도구를 가져 오는 데 사용해야한다고 생각하지만 (그 후에 valgrind가 제대로 만들어야 함) 이렇게하고 싶지 않은 경우 (예 : Xcode 도구의 크기가 너무 큼) Darwin OSX를 얻을 수도 있습니다. 코드를 작성하고 다음 파일을/usr/include/mach

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

이것은 다소 느슨한 해킹이지만 깨끗한 컴파일 및 설치를 허용했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.