"arm-linux" 실행 파일에서 Valgrind를 사용하는 데 문제가 있습니다.
여기 홈 페이지에서 Valgrind를 다운로드했습니다.http://valgrind.org/downloads/. 설치하려면 다음 명령을 실행하십시오.
sudo ./configure
sudo make
sudo make install
Ubuntu에서는 Linux GCC를 사용하여 "HelloWorld.c" 실행 가능 HelloWorld 파일을 컴파일하려고 했습니다. Valgrind는 문제 없이 실행됩니다.
그런 다음 ARM-Linux 크로스 컴파일러로 컴파일된 실행 파일(이 실행 파일은 임베디드 장치에서 실행되도록 컴파일되었습니다)에서 이를 시도했는데 다음 오류가 발생했습니다.
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에서 지원되지 않으므로 당신이 원하는 것을 하기 위해 에뮬레이터를 사용하고 싶습니다.