Yosemite e Valgrind

110

Você pode me dizer como instalar o valgrind no yosemite? Quando tento instalá-lo, recebo "verificando a versão do kernel ... não suportado (14.0.0) configure: erro: Valgrind funciona em Darwin 10.x, 11.x, 12.xe 13.x (Mac OS X 10,6 / 7/8/9) "

Não existe um caminho ou atualização oficial e não encontrei nada (exceto http://comments.gmane.org/gmane.comp.kde.devel.bugs/1553705 , mas eles não resolveram o problema).

Kozlovzxc
fonte
4
Problema conhecido com homebrewcom uma nota antipático: "Não deve ser corrigido no futuro próximo devido a montante do desenvolvimento calendário"
hrbrmstr
@hrbrmstr, obrigado, eu resolvi esse problema por algum tempo instalando o Ubuntu na máquina virtual e depois instalando o valgrind no Ubuntu
Kozlovzxc

Respostas:

287

Como não há versão estável que suporte Yosemite, você pode instalar a versão de desenvolvimento mais recente com

brew install --HEAD valgrind
Harry F
fonte
5
Este comando não funciona mais. Eu recebo esta mensagem: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
Embora esta fosse a resolução correta no momento da postagem, Valgrind agora suporta OS X Yosemite por meio dos canais de lançamento documentados do aplicativo.
Rhys Kidd
50

Embora possa ter sido o caso em ciclos de lançamento do OS X anteriores que o Valgrind demorou um certo tempo antes de alcançar um suporte de recursos razoável, o suporte básico do OS X 10.10 já está disponível no tronco do Valgrind devido ao trabalho significativo no pré-lançamento do Yosemite.

Da lista de correio:

Recentemente, houve alguns esforços para melhorar o suporte de Valgrind ao Yosemite. Se você desenvolve no Mac OS, pode experimentar o tronco (svn co svn: //svn.valgrind.org/valgrind/trunk) e relatar qualquer falha que você obter. O suporte para Yosemite é bom o suficiente para que pelo menos um grande aplicativo gráfico (Firefox) funcione bem. O suporte para a versão anterior, 10.9 (Mavericks), também foi substancialmente melhorado.

Observe que o trabalho tem como alvo apenas processos de 64 bits. 32 bits pode funcionar, e provavelmente melhor no Mavericks, mas eu suspeito que será cada vez mais problemático no Yosemite devido ao suporte do conjunto de instruções x86 de 32 bits do Valgrind não ter progredido para passar no SSSE3.

Julian Seward

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

Divulgação completa: sou um dos novos desenvolvedores Valgrind que contribuiu com patches para suportar OS X 10.10

Rhys Kidd
fonte
14
1 por contribuir para valgrind. Comparei meu código. Ele apontou a causa de uma falha de segmentação que está me deixando louco nas últimas 24 horas, pois não consegui encontrar a causa.
ArtOfWarfare
11

O fluxo de trabalho svn do Valerio irá baixar todos os ramos, o que consome tempo e recursos. Um procedimento melhor é baixar apenas o tronco:

svn co svn://svn.valgrind.org/valgrind/trunk valgrind
cd valgrind
./autogen.sh
./configure
make
make install
Ed Millard
fonte
Perceber que o download leva muito mais tempo do que a fonte de lançamento .tar.bz ... é apenas a compactação que faz uma grande diferença ou é o download de arquivos que não faria de outra forma? (Eu acho que pode ser o servidor diferente ... ou a diferença entre svn coe curl...)
ArtOfWarfare
+1: Funcionou muito bem. A única coisa que mudei foi fazer sudo make installno final, em vez de make install. Não tenho certeza se era necessário ou não, pois não tentei do seu jeito.
ArtOfWarfare
8

Aqui está minha opinião sobre isso. Eu mais ou menos tinha um mac limpo com xcode instalado. Entendi compilando e executando com o seguinte:

# 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  

Observe que callgrind_control (de valgrind-3.11.0 SVN) não parece funcionar no OS X, parece um perl-script e a ferramenta de linha de comando que ele executa (vgdb -l) imprime algo 'inesperado' que o script não ' t analisar corretamente (para que não seja capaz de encontrar o outro processo em execução com valgrind).

Alternativamente, o script perl apenas chama vgdb, também podemos fazer isso diretamente (apenas descobrir o id do processo manualmente):

vgdb --pid=2858 instrumentation on
Kalmiya
fonte
Brilhante, isso é exatamente o que eu preciso para fazer o valgrind rodar no Yosemite 10.10.4 A única coisa, o comando acima denotando a opção -disable-tls tem um caractere de hífen unicode, ao invés do hífen ascii regular.
Tim Kane
Fico feliz em poder ajudar - obrigado por apontar o hífen (atualizei). Também foi adicionada uma solução alternativa para o problema callgrind_control.
Kalmiya
7

Trabalhou para mim em 10.10.1:

svn co svn://svn.valgrind.org/valgrind
cd valgrind
./autogen.sh
./configure
make
make install
Valerio Schiavoni
fonte
Tentei isso. Desisti enquanto baixava vários testes irrelevantes.
GrantJ
1
Os testes de regressão são uma parte essencial do programa Valgrind da perspectiva de um desenvolvedor. Embora um lançamento oficial do Valgrind ainda esteja para ser feito com as melhorias recentes no suporte da plataforma OS X, infelizmente você precisará baixar uma versão com os testes. Se, por algum motivo, o download do SVN é problemático em sua conexão, então existem repositórios GitHub não oficiais : github.com/liquid-mirror/valgrind
Rhys Kidd
7

Todas as soluções listadas aqui falharam para mim. O que finalmente deu certo foi usar portas mac.

sudo port install valgrind-devel

bigtunacan
fonte
3

Veja como instalá-lo usando fontes alternativas além do svn oficial (porque parece estar disponível de forma intermitente).

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

1) Navegue até este espelho git do svn e baixe a versão mais recente disponível: http://repo.or.cz/w/valgrind.git

2) Você também precisa do VEX, então pegue a versão mais recente aqui: http://repo.or.cz/w/vex.git

3) Extraia os dois. Coloque todo o conteúdo da VEXpasta em uma pasta chamada VEX no nível superior do diretório valgrind.

cd para o diretório valgrind e execute o seguinte:

Run ./autogen.sh

Run ./configure

Run make

Run sudo make install

Teste-o executando valgrind --versionVocê deve estar executando pelo menos 3.11.0 SVN para que funcione no Yosemite. Valgrind 3.11.0 SVN em execução no OSX Yosemite 10.10.4

user43633
fonte
3

Eu instalei no meu mac instalando homebrewe executando estes 3 comandos no terminal.

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

PS: Tenho Os X El Capitan (10.11), mas também deve funcionar com as versões anteriores.


fonte
Qualquer coisa mais recente do que isso dá: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

Finalmente fiz Valgrind trabalhar no meu OSX El Capitan 10.11.12 .

A resposta do usuário Kalmiya funcionou para mim primeiro, depois que instalei as ferramentas de linha de comando do Xcode.

Digite isso no terminal:

xcode-select --install

Agora siga a postagem de Kalmiya , passo a passo. https://stackoverflow.com/a/30366798/3633475

Rafael
fonte
meu mac book pro tem a versão mais recente do mac os já atualizada e é 10.11.3 não 10.11.12! também sua sugestão não funcionou para mim. este é um erroAssertion 'tst->os_state.pthread - magic_delta == self' failed.
SMMousavi
@SMMousavi O erro "Assertion 'test-> os_state.pthread - magic_delta == self'" foi corrigido para Valgrind na versão de desenvolvimento SVN.
Rhys Kidd
@RhysKidd Muito obrigado pela informação :)
SMMousavi
0

Aqui está outra abordagem do svn install. Os anteriores não funcionaram para mim, pois eu precisava ter automakee autoconfinstalar, o que não aconteceu, embora eu tivesse a versão mais recente das ferramentas de linha de comando do Xcode instaladas.

Eu tenho o seguinte neste site . Eu também tive que ligar automakee autoconfdepois de fazer brew install automakee brew install autoconffazer brew link automakee brew link autoconfpara que isso funcionasse.

# 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
Kyle Falconer
fonte
1
Em 10.10.3 ainda sem sucesso: $ 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 embora o / usr / include / mach tenha sido criado sob o root,
linkado
0

Usei as instruções de kalmiya para construir valgrind como um pacote conda para OSX Yosemite. Pra quem trabalha com anaconda / conda, basta fazer

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

Nota lateral: eu precisava instalar as ferramentas de linha de comando conforme descrito abaixo para obter o valgrind compilado.

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

PR
fonte
0

Eu tenho valgrind no Yosemite compilado, mas tive que usar um hack para fazer isso. Embora eu ache que você deve usar xcode-select installpara obter todas as ferramentas de linha de comando (após o qual valgrind deve fazer corretamente), mas se você não quiser fazer isso (por exemplo, o tamanho das ferramentas Xcode muito grande), você também pode obter o Darwin OSX codificar e copiar os seguintes arquivos para/usr/include/mach

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

Isso permitiu uma compilação e instalação limpas, embora observe que é um hack bastante lento.

Pete855217
fonte