Hotspotを使用するたびに-XX:+PrintAssembly
、恐ろしい AT&T 構文を読まなければならないことに悩まされます。
Intel構文を使用するように指示する方法はありますか?
Hotspotを使用するたびに-XX:+PrintAssembly
、恐ろしい AT&T 構文を読まなければならないことに悩まされます。
Intel構文を使用するように指示する方法はありますか?
必要なのは、いくつかのオプションを dis-asm.h および binutils コードに解析することだけです
intel Asm (私も好む) の場合は、次を追加するだけです
-XX:PrintAssemblyOptions=intel
オプションを組み合わせる必要がある場合は、次のようにコンマで行います
-XX:PrintAssemblyOptions=intel,hsdis-help
hsdis オプションとして認識されないものはすべて、逆アセンブラーに供給されます。これらのオプションは、リストされているものと同じです。
objdump --help
... <SNIP A lot of --help text %<> ...
The following i386/x86-64 specific disassembler options are supported for use
with the -M switch (multiple options should be separated by commas):
x86-64 Disassemble in 64bit mode
i386 Disassemble in 32bit mode
i8086 Disassemble in 16bit mode
att Display instruction in AT&T syntax
intel Display instruction in Intel syntax
att-mnemonic
Display instruction in AT&T mnemonic
intel-mnemonic
Display instruction in Intel mnemonic
addr64 Assume 64bit address size
addr32 Assume 32bit address size
addr16 Assume 16bit address size
data32 Assume 32bit data size
data16 Assume 16bit data size
suffix Always display instruction suffix in AT&T syntax
Report bugs to <http://www.sourceware.org/bugzilla/>.
これを行う既存の方法はないと思います。しかし、これは私が見つけたものです-
ここにのソースがありhsdis
ます。GCCMakefile
に渡すことで変更できます。-masm=intel
そして、それが機能する場合は、今後、+PrintAssembly
Intel 構文アセンブリの出力を開始する必要があります。
ソースを取得し、ビルドし、最終的に分解作業を行うものを取得するための段階的な手順を次に示します。hsdis-arch.so
私はこれを自分で試していません。これが機能することを願っています:)
何も機能しない場合は、これでAT&T 構文に慣れるはずです:)