2017-03-15 3 views
0

Ich versuche, das Valgrind-Tool auf meinem 32-Bit-Programm ausführen (Beispiel), baute ich unter dem Linux Ubuntu Host 16.04 (64bit), aber es lief nicht, Fehler : falsche ELF.Valgrind funktioniert nicht auf meinem 32bit ausführbare Datei in Linux Ubuntu 16.04

Beispielanwendung ist in arm32 laufen, kompiliert in meinem Host-Linux-Rechner.

Dies ist der Befehl, den ich ausgeführt habe.

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

Ich rannte memcheck Werkzeug, aber das schlug auch fehl.

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

Dann, was ich tat, exportierte ich die valgrind lib Pfad, aber das hat nicht geholfen +

$export VALGRIND_LIB="/usr/lib/valgrind" 

I ls meine lib dir jut, ich ganze Liste und finden Sie Callgrind und alle Libs sind dort gefunden .

callgrind-amd64-linux   
callgrind-x86-linux 

Ich weiß nicht, was falsch ist und wie Sie Valgrind auf meine ausführbaren Dateien verwenden.

Irgendwelche Hilfe, geschätzt.

Antwort

0

Valgrind kein Setup unterstützen, in den ‚Host‘ (wo man valgrind laufen) von ‚Gast‘ unterscheidet (die Anwendung, die Sie unter valgrind laufen.

Also, gibt es keine Möglichkeit, eine arm32 Anwendung auszuführen unter Valgrind auf einem x86/amd64-System.

Sie sollten diese auf einem arm32 System laufen, mit einem valgrind für arm32 zusammengestellt. Alternativ Sie zB einem android-Emulator verwenden können. See README.android und README.android_emulator in Valgrind Verteilung für weitere Informationen

+0

Oh ja, dein Recht. Ich habe erfolgreich den Android-Emulator verwendet und das löst das Problem. Danke für die Antwort. – LethalProgrammer

Verwandte Themen