Получить 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