热点7 高速磁盘打印汇编英特尔语法

2022-09-03 05:22:55

每次我使用Hotspot并且必须阅读可怕的AT&T语法时,它都会让我烦恼。-XX:+PrintAssembly

有没有办法告诉它使用英特尔语法?


答案 1

您所需要的只是将一些选项解析到dis-asm.h和binutils代码上

对于英特尔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/>.

答案 2

我不认为有任何方法可以做到这一点。但这就是我发现的 - 这是.您可以通过传递到GCC来更改。如果它有效,从现在开始,应该开始输出英特尔语法汇编。hsdisMakefile-masm=intel+PrintAssembly

以下是获取源代码,构建并最终获得哪个是执行反汇编工作的分步过程hsdis-arch.so

我自己还没有尝试过。我希望你能让它工作:)

如果没有任何效果,这应该会让你对AT&T语法:)


推荐