gccでARM用に構築されたオブジェクトを逆アセンブルしようとしています。残念ながら、objdumpは、コードがARMとThumbのどちらであるかを推測しようとしており、間違っています。実際にARMの場合、私のコードはThumbだと考えています。objdumpとARM vs Thumb
objdumpにすべての命令をThumb(-Mforce-thumb
)として解釈させるオプションがありますが、ARMモードを強制するものはありません。
これは私にとって本当に奇妙な欠点のように思えます。私は組み込み機器を使用しています(デバッグの唯一の手段は逆アセンブリを見ることです)。私は、objをサポートしていないARMアーキテクチャを使用するようにobjdumpに指示するなど、さまざまなアプローチを試しましたが、何も動作しないようです。何か案は?
(そして、はい、私は指示が本当に ARMであることを知っている...)
バイナリ(elf)ファイルを削除していますか、おそらく情報がそこにあり、削除されている可能性があります。あるいは、デバッグ情報をバイナリに含めるためにスイッチを追加する必要があります。 –
今日は 'objdump ... -Mno-force-thumb'です。これが2011年に戻ったのかどうかは言えません。本質的にはARMかThumbのどちらかですので、 'no-force-thumb'と言うと、命令セットはARMです。 – JSmyth