Подтвердить что ты не робот

Hotspot7 hsdis PrintAssembly Синтаксис Intel

Он раздражает меня каждый раз, когда я использую -XX:+PrintAssembly с Hotspot и должен прочитать ужасный синтаксис AT & T.

Есть ли способ сказать ему использовать синтаксис Intel?

4b9b3361

Ответ 1

Все, что вам нужно, это разобрать некоторые параметры на 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/>.

Ответ 2

Я не думаю, что существует какой-либо существующий способ сделать это. Но это то, что я нашел - Здесь является источником hsdis. Вы можете изменить Makefile, передав -masm=intel в GCC. И если это сработает, с этого момента +PrintAssembly должен начать выводить сборку синтаксиса Intel.

Ниже приведена процедура шаг за шагом, чтобы получить источник, построить и, наконец, получить hsdis-arch.so, который является тем, который делает разборку Работа!

Я сам этого не пробовал. Я хочу, чтобы вы это работали:)

Если ничего не работает, это должно сделать вас удобным с AT & T Синтаксис:)