Baixei as fontes do tronco Valgrind e as construí para usar em um sistema Linux embarcado (Montavista Linux) equipado com um ARM926 (arquitetura ARMv5t). Tudo correu bem até que tentei executá-lo para verificar algum aplicativo que fiz; Valgrind me disse:
"valgrind: falhou ao iniciar a ferramenta 'memcheck' para a plataforma 'arm-linux': Não existe esse arquivo ou diretório".
Tentar executar qualquer outra ferramenta dá a mesma mensagem. Para make install eu usei a opção --prefix apontando para o sistema de arquivos do sistema embutido que é montado através do NFS (por exemplo, --prefix =/home/NFS_mounted/opt/valgrind). Verifiquei o local de instalação e o diretório lib contém as ferramentas adequadas; Eu também verifiquei o arquivo pkgconfig correspondente para Valgrind e parece estar OK, então estou meio sem noção agora e não consigo descobrir o que está errado. 2 questões:
Execute este comando em seu dispositivo de destino
export VALGRIND_LIB=~/valgrind/lib/valgrind/
onde ./valgrind
é o caminho do diretório instalado (fornecido em ./configure
)
O problema é que 'valgrind' está procurando um executável diferente para executar a verificação real. Ele usa o caminho de instalação que você especificou ao configurá-lo, que não é o mesmo caminho do destino.
Você deve ser capaz de confirmar isso criando um link simbólico/home/NFS_mounted em seu destino que aponta para '/'.
Coloque em VALGRIND_LIB o diretório pai do diretório AMD64-linux. Por exemplo.:
export VALGRIND_LIB=/u/gallinar/downloaded/valgrind-3.2.3/.in_place
funcionou para mim hoje :).
VALGRIND_LIB precisa estar apontando para a pasta que tem a ferramenta memcheck e outras bibliotecas x compiladas dependentes