it-gundan.com

크로스 컴파일 된 Valgrind 사용

Valgrind 트렁크에서 소스를 다운로드하여 ARM926 (ARMv5t 아키텍처) 기반의 임베디드 Linux 시스템 (Montavista Linux)에서 사용하도록 빌드했습니다. 내가 만든 일부 응용 프로그램을 확인하기 위해 실행하려고 할 때까지 모든 것이 잘되었습니다. Valgrind는 다음과 같이 말합니다.

"valgrind : 'arm-linux'플랫폼에 대한 'memcheck'도구를 시작하지 못했습니다 : 해당 파일 또는 디렉토리가 없습니다.

다른 도구를 실행하려고하면 동일한 메시지가 표시됩니다. make install의 경우 NFS (예 : --prefix =/home/NFS_mounted/opt/valgrind)를 통해 마운트 된 임베디드 시스템의 파일 시스템을 가리키는 --prefix 옵션을 사용했습니다. 설치 위치를 확인하고 적절한 도구가있는 lib 디렉토리를 확인했습니다. 또한 Valgrind에 해당하는 pkgconfig 파일을 확인했는데 괜찮은 것 같아서 지금 당장은 실마리가없고 무엇이 잘못되었는지 알아낼 수 없습니다. 2 가지 질문 :

  1. 크로스 컴파일 된 Valgrind를 사용/설치하는 것이 맞습니까? 어쩌면 내가 설정과 관련하여 뭔가 잘못하고 있거나 내가 놓친 호스트 시스템과 관련된 무언가가있을 수 있습니다 (gdb/gdbserver like).
  2. 누구든지 ARM 아키텍처에서 실행 해 보았습니까? 지원이 상당히 최근이라는 것을 알고 있으므로 괜찮은 결과를 얻을 수 있는지 궁금합니다.
12
celavek

대상 장치에서이 명령을 실행하십시오.

export VALGRIND_LIB=~/valgrind/lib/valgrind/

어디 ./valgrind는 설치된 디렉토리 경로입니다 (./configure)

15
bhargav

문제는 'valgrind'가 실제 검사를 실행하기 위해 다른 실행 파일을 찾고 있다는 것입니다. 구성 할 때 지정한 설치 경로를 사용하며 대상 경로와 동일하지 않습니다.

타겟에 '/'를 가리키는 심볼릭 링크/home/NFS_mounted를 생성하여이를 확인할 수 있어야합니다.

4
Kristof Provost

AMD64-linux 디렉토리의 상위 디렉토리 인 VALGRIND_LIB에 넣으십시오. 예 :

export VALGRIND_LIB=/u/gallinar/downloaded/valgrind-3.2.3/.in_place

그것은 오늘 나를 위해 일했습니다 :).

2
Hemant

VALGRIND_LIB는 memcheck 도구 및 기타 종속 x 컴파일 된 라이브러리가있는 폴더를 가리켜 야합니다.

0
DERRIC LYNS