2017-03-15 25 views
0

32bit実行ファイル(サンプル)でvalgrindツールを実行しようとしていますが、LinuxのUbuntuホスト16.04(64bit)でビルドしましたが、 :ELFが間違っています。valgrindはLinuxのubuntuで32bit実行可能ファイルで動作しません16.04

サンプルアプリケーションは、私のホストのLinuxマシンでクロスコンパイルされたarm32で動作するように構築されています。

これは私が実行したコマンドです。

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アプリケーションを実行する方法はありません のx86/AMD64システム上でValgrindの。

あなたはarm32用にコンパイルvalgrindのと、arm32システムでこれを実行する必要があります。 また、あなたは例えばAndroidのエミュレータを使用することができます。中 参照README.androidとREADME.android_emulator Valgrindの配布 詳細については、

+0

ああ、あなたの権利。私は正常にアンドロイドエミュレータを使用し、それは問題を解決します。返信いただきありがとうございます。 – LethalProgrammer

関連する問題