
Estou tendo problemas ao usar o Valgrind no arquivo executável "arm-linux".
Baixei o Valgrind da página principal aqui:http://valgrind.org/downloads/. Execute o seguinte comando para instalá-lo:
sudo ./configure
sudo make
sudo make install
No Ubuntu, tento com um arquivo executável HelloWorld compilado "HelloWorld.c" usando Linux GCC. Valgrind funciona sem nenhum problema.
Então eu tentei em um arquivo executável compilado usando Cross-compiler para ARM-Linux (este arquivo executável é compilado para ser executado em um dispositivo incorporado) e recebi este erro:
valgrind: failed to start tool 'memcheck' for platform 'arm-linux': No such file or directory
Pesquisei no Google e não consegui encontrar muita informação, tentei:
export VALGRIND_LIB=/usr/local/lib/Valgrind
Ainda mostra o mesmo erro, o que estou fazendo de errado?
Responder1
Valgrind está tentando lançar um executável adequado para a ferramenta ‘memcheck’, mas não consegue encontrar um. Isto se deve ao fato de queo script './configure' criou um Makefile viável para a instalação de um pacote valgrind específico para a arquitetura do host (seu PC), mas você está alimentando-o com um executável destinado a outro (ARM no seu caso); isso leva a uma situação em que faltam as ferramentas específicas do ARM para fazer o trabalho. Tive um problema semelhante com a ferramenta 'callgrind' (também parte do pacote valgrind) e, ao fazer um strace, obtive a seguinte linha:
execve("/usr/local/lib/valgrind/callgrind-arm-linux", ["valgrind", "--tool=callgrind", "Application.STM.out"], [/* 19 vars */]) = -1 ENOENT (No such file or directory)
o que significa que sinto falta do binário callgrind específico do ARM.
elaborando sobre isso, o que você (e eu há não muito tempo) estamos tentando fazer não é suportado pelo valgrind, então você deseja usar um emulador para fazer o que quiser.