
"arm-linux" 실행 파일에서 Valgrind를 사용하는 데 문제가 있습니다.
여기 메인 페이지에서 Valgrind를 다운로드했습니다.http://valgrind.org/downloads/. 설치하려면 다음 명령을 실행하십시오.
sudo ./configure
sudo make
sudo make install
Ubuntu에서는 Linux GCC를 사용하여 "HelloWorld.c"로 컴파일된 실행 가능한 HelloWorld 파일을 사용해 봅니다. Valgrind는 문제없이 실행됩니다.
그런 다음 ARM-Linux용 Cross-compiler를 사용하여 컴파일된 실행 파일(이 실행 파일은 임베디드 장치에서 실행되도록 컴파일됨)에서 이를 시도했는데 다음 오류가 발생했습니다.
valgrind: failed to start tool 'memcheck' for platform 'arm-linux': No such file or directory
Google에서 검색했지만 많은 정보를 찾을 수 없었습니다. 다음을 시도했습니다.
export VALGRIND_LIB=/usr/local/lib/Valgrind
여전히 같은 오류가 표시됩니다. 제가 뭘 잘못하고 있는 걸까요?
답변1
Valgrind가 'memcheck' 도구에 적합한 실행 파일을 시작하려고 시도하고 있지만 찾을 수 없습니다. 이는 다음과 같은 사실 때문입니다.'./configure' 스크립트는 호스트 아키텍처(PC)에 특정한 valgrind 패키지 설치를 위해 실행 가능한 Makefile을 생성했지만 다른 아키텍처(귀하의 경우 ARM)를 위한 실행 파일을 제공하고 있습니다.; 이로 인해 작업을 수행하는 데 필요한 ARM 관련 도구가 부족한 상황이 발생합니다. 나는 'callgrind' 도구(또한 valgrind 패키지의 일부)와 비슷한 문제를 겪었고 strace를 수행하여 다음 줄을 생각해냈습니다.
execve("/usr/local/lib/valgrind/callgrind-arm-linux", ["valgrind", "--tool=callgrind", "Application.STM.out"], [/* 19 vars */]) = -1 ENOENT (No such file or directory)
이는 ARM 관련 callgrind 바이너리가 누락되었음을 의미합니다.
자세히 설명하자면, 당신(그리고 얼마 전까지만 해도 나)이 하려고 하는 것은 valgrind에서 지원되지 않으므로 당신이 원하는 것을 하기 위해 에뮬레이터를 사용하고 싶습니다.