It annoys me every time I use -XX:+PrintAssembly
with Hotspot and have to read the horrible AT&T syntax.
Is there a way to tell it to use the Intel syntax?
It annoys me every time I use -XX:+PrintAssembly
with Hotspot and have to read the horrible AT&T syntax.
Is there a way to tell it to use the Intel syntax?
All you need is to parse some options onto the dis-asm.h and binutils code
For intel Asm (which I also prefer) just add the following
-XX:PrintAssemblyOptions=intel
If you need to combine options do it with commas like so
-XX:PrintAssemblyOptions=intel,hsdis-help
Anything not recognised as a hsdis option will be fed to the disassembler, these options are the same ones you see listed from
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/>.
PrintAssemblyOptions
I can't seem to find any documentation about that with google. –
Hereabouts I don't think there's any existent way to do this. But this is what I've found-
Here is the source of hsdis
. You can change the Makefile
by passing -masm=intel
to GCC. And if it works, from now onwards, +PrintAssembly
should start outputting Intel syntax assembly.
Here is the step by step procedure to get the source, build and finally get the hsdis-arch.so
which is the one which does the disassembly work!
I haven't tried this out myself. I wish you get this to work :)
If nothing works, this should make you comfortable with AT&T Syntax :)
-masm=intel
in the makefile? I just did CFLAGS += -masm=intel
but that doesn't do the trick. –
Hereabouts CFLAGS
is the right place, but I am not sure why isn't it working for you. Is the hsdis-arch.so
getting generated? Any difference in it after adding this debug option? –
Dex hsdis
files and NOT affecting the disassembly process of your Java files!! –
Dex java -XX:+UnlockDiagnosticVMOptions -XX:PrintAssembly
from bash - so pretty standard I'd think. –
Hereabouts © 2022 - 2024 — McMap. All rights reserved.