2017-03-15 6 views
0

내 32 비트 실행 파일 (예제)에서 valgrind 도구를 실행하려고하는데 Linux 우분투 호스트 16.04 (64 비트)에서 빌드했지만 실행에 실패했습니다. 오류 ELF가 잘못되었습니다.내 우분투에서 실행중인 32 비트에서 valgrind가 작동하지 않는다. 16.04

예제 응용 프로그램은 arm32에서 실행되도록 제작되었으며 내 호스트의 Linux 컴퓨터에서 상호 컴파일되었습니다.

이것은 내가 실행 한 명령입니다.

valgrind --tool=callgrind ./sample 
valgrind: wrong ELF executable class (eg. 32-bit instead of 64-bit) 
valgrind: ./sample: cannot execute binary file 

memcheck 도구를 실행했지만 실패했습니다.

valgrind --tool=memcheck ./updater 
valgrind: wrong ELF executable class (eg. 32-bit instead of 64-bit) 
valgrind: ./updater: cannot execute binary file 

그때 내가 무슨 짓을했는지, 내가 Valgrind의 lib 디렉토리 경로를 수출하지만

내가 LS 내 LIB 디렉토리를 돌출
$export VALGRIND_LIB="/usr/lib/valgrind" 

, 나는 전체 목록을 발견 + 도움 callgrind를 찾을 수 없습니다 모든 libs와 거기 .

callgrind-amd64-linux   
callgrind-x86-linux 

내 실행 파일에서 잘못된 점과 valgrind를 사용하는 방법을 모릅니다.

도움, 감사합니다.

답변

0

Valgrind의가 (당신이 Valgrind의 실행) '호스트' 은 '손님'(당신이 Valgrind의에서 실행되는 응용 프로그램과 다른 설정을 지원하지 않습니다. 그래서

,하에 arm32 응용 프로그램을 실행하는 방법은 없습니다 Valgrind의 86/AMD64 시스템.

당신은 arm32에 대한 컴파일 된 Valgrind의와 더불어, arm32 시스템에서이 작업을 실행해야합니다. 을 다른 방법으로, 예를 들어 안드로이드 에뮬레이터를 사용할 수 있습니다. 참조 README.android 및 README.android_emulator에서 자세한 내용은 Valgrind 배포

+0

오 예, 당신의 권리. 나는 성공적으로 안드로이드 에뮬레이터를 사용하고 그 문제를 해결합니다. 답장을 보내 주셔서 감사합니다. – LethalProgrammer