2017-11-22 3 views
0

Googleに似た質問がたくさんありますが、それらを試してみましたが、どれも問題なく動作しています。ARMのValgrindをクロスコンパイルできません

Valgrindを使用して、デバイス用にコンパイルされたバイナリファイルのメモリリークを検出しようとしています(プロセッサ:ARM926EJ-S rev 5(v5l)を使用)。

したがって、自分のデバイス用の特定のツールチェーンを使用してValgrindをクロスコンパイルしようとしています。

は、ここに私のプロセスです: を(それがサポートされていない建築家文句ないように)私はValgrindのの3.13.0と

2/sed "s/armv7/arm/g" configure

1/cd Valgrind-3.13.0 Ubuntuの16

を使用しています。

(代わりのLinux上のデフォルトの私の特定のクロスコンパイラを使用して)

3/./configure --host=arm-none-linux-gnueabi

4/make

次のエラーがポップアップ:

error: bad value (cortex-a8) for -mcpu= switch 

=>マイデバイス以来ARM926EJ-Sプロセッサを使用して、cortex-a8をValgrin-3.13.0フォルダ内のすべてのファイルのarm926ej-sに置き換えます。

再び上記の手順を実行すると、別のエラーがポップアップ表示:

m_dispatch/dispatch-arm-linux.S: Assembler messages: 
m_dispatch/dispatch-arm-linux.S:104: Error: selected processor does not support `movw r1,#47' 
m_dispatch/dispatch-arm-linux.S:105: Error: selected processor does not support `movw r2,#0' 
m_dispatch/dispatch-arm-linux.S:157: Error: selected processor does not support `movw r1,#:lower16:vgPlain_stats__n_xindirs_32' 
m_dispatch/dispatch-arm-linux.S:158: Error: selected processor does not support `movt r1,#:upper16:vgPlain_stats__n_xindirs_32' 
m_dispatch/dispatch-arm-linux.S:165: Error: selected processor does not support `movw r1,#(((1<<15))-1)' 
m_dispatch/dispatch-arm-linux.S:166: Error: selected processor does not support `movw r4,#:lower16:vgPlain_tt_fast' 
m_dispatch/dispatch-arm-linux.S:169: Error: selected processor does not support `movt r4,#:upper16:vgPlain_tt_fast' 
m_dispatch/dispatch-arm-linux.S:182: Error: selected processor does not support `movw r1,#:lower16:vgPlain_stats__n_xindir_misses_32' 
m_dispatch/dispatch-arm-linux.S:183: Error: selected processor does not support `movt r1,#:upper16:vgPlain_stats__n_xindir_misses_32' 
Makefile:3224: recipe for target 'm_dispatch/libcoregrind_arm_linux_a-dispatch-arm-linux.o' failed 

私が間違って何をしているのですか?

+1

また、Valgrindをクロスコンパイルする必要があります。私はこの流れに慣れていない。 –

答えて

1

ARM9は古いARMv5命令セットを使用します。このエラーメッセージから、Valgrindのアセンブリコードは、プロセッサが持つものよりも新しいARM(ARMv7)命令セットを期待しているようです。

したがって、valgrindを動作させるには上記のアセンブラをARMv4に移植する必要があります。

+0

不運にも、移植アセンブラは私の知るところではなく、時間がかかりすぎるかもしれません。多分私は別の方法を見つけるべきです。 Valgrind(メモリリークチェック)と同等のソフトウェアをお勧めしますか?ARM926EJ-Sで動かすことができますか? –

+0

独自のメモリリークチェッカーを作成します。すべてのメモリ割り当てと割り当て解除を追跡するmallocフックを書くことができるはずです。呼び出しスタックは、フレームポインタを使用してビルドしない限り問題になることがあります – doron

関連する問題