Não é possível usar o Valgrind no arquivo executável do ARM-Linux

1

Estou com problemas ao usar o Valgrind no arquivo executável "arm-linux".

Eu baixei o Valgrind da página principal aqui: link . Execute o seguinte comando para instalá-lo:

sudo ./configure
sudo make
sudo make install

No Ubuntu, eu tento com um arquivo HelloWorld executável compilado "HelloWorld.c" usando o Linux GCC. Valgrind é executado sem nenhum problema.

Então eu tento em um arquivo executável compilado usando o Cross-compiler para ARM-Linux (este arquivo executável é compilado para rodar em um dispositivo embarcado) e recebi este erro:

valgrind: failed to start tool 'memcheck' for platform 'arm-linux': No such file or directory

Eu 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 errado?

    
por Toan Tran 21.11.2017 / 18:11

1 resposta

0

Valgrind está tentando lançar um executável adequado para a ferramenta 'memcheck', mas não consegue encontrar um. Isso se deve ao fato de que o 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 um executável para outro ( ARM no seu caso) ; Isso leva a uma situação em que você não tem as ferramentas específicas do ARM para fazer o trabalho. Eu tive um problema semelhante com a ferramenta 'callgrind' (também parte do pacote valgrind), e ao fazer um strace eu criei 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 de callgrind específico do ARM.

Com base nisso, o que você (e eu não há muito tempo atrás) está tentando fazer não é suportado pelo valgrind, então você quer usar um emulador para fazer o trabalho.

    
por 27.02.2018 / 14:25