"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)実行可能ファイルの1つを提供します。;これにより、作業を実行するために必要な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ではサポートされていないので、あなたが望むことをするためにエミュレータを使いたいのです。