Hotspot7 hsdis PrintAssembly Intel Syntax

允我心安 提交于 2019-12-03 08:56:07

问题


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?


回答1:


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/>.



回答2:


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 :)



来源:https://stackoverflow.com/questions/9337670/hotspot7-hsdis-printassembly-intel-syntax

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!