Получить objdump для отображения полного шестнадцатеричного кода 64-битной инструкции mov

objdump не покажет мне шестнадцатеричный код длинной 64-битной инструкции.

objdump -d myobj.o

вот одна из строк:

3: 48 bb 2f 2f 62 69 6e movabs $0x68732f6e69622f2f,%rbx

гекс инструкции обрезается после первых 7 байтов инструкции mov, даже если в операнде есть 8 байтов.

То, что я хочу это показать, будет:

3: 48 bb 2f 2f 62 69 6e 2f 73 68 movabs $0x68732f6e69622f2f,%rbx

Я знаю, что легко вывести остальную часть гекса, взглянув на настоящую инструкцию, но я просто хочу знать, как мне заставить ее показать все гекс?

1 ответ

Решение

man-страница objdump говорит использовать --insn-width:

$ objdump -d a.out | grep movabs
  40053e:   48 b8 45 23 12 90 78    movabs $0x1234567890122345,%rax
  40054c:   48 b8 45 33 12 90 73    movabs $0x1334567390123345,%rax

$ objdump --insn-width=10 -d a.out | grep movabs
  40053e:   48 b8 45 23 12 90 78 56 34 12   movabs $0x1234567890122345,%rax
  40054c:   48 b8 45 33 12 90 73 56 34 13   movabs $0x1334567390123345,%rax
Другие вопросы по тегам