获取 objdump 显示 64 位 mov 指令的完整十六进制

获取 objdump 显示 64 位 mov 指令的完整十六进制

objdump 不会显示长 64 位指令的十六进制数。

objdump -d myobj.o

其中一行如下:

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

尽管操作数有 8 个字节,但指令 hex 会在 mov 指令的前 7 个字节后截止。

我希望它显示的内容是:

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

我知道通过查看实际指令很容易推断出十六进制的其余部分,但我只是想知道如何让它显示所有的十六进制?

答案1

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

相关内容