Hotspot7 hsdis Распечатать Сборка Intel Синтаксис - PullRequest
15 голосов
/ 18 февраля 2012

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

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

Ответы [ 2 ]

21 голосов
/ 28 февраля 2012

Все, что вам нужно, это проанализировать некоторые параметры в коде 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 голосов
/ 21 февраля 2012

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

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

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

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

...