【问题标题】:objdump output - what do the columns represent? [duplicate]objdump 输出 - 列代表什么? [复制]
【发布时间】:2011-08-01 04:23:14
【问题描述】:

我在目标文件上运行objdump -r 并得到以下输出。每一列在这里代表什么?我可能错过了,但文档没有说明。

simple.o:     file format elf64-x86-64


Disassembly of section .text:
0000000000000000 <main>:
   0:   55                      push   %rbp
   1:   48 89 e5                mov    %rsp,%rbp
   4:   48 83 ec 30             sub    $0x30,%rsp
   8:   64 48 8b 04 25 28 00    mov    %fs:0x28,%rax
   f:   00 00 
  11:   48 89 45 f8             mov    %rax,-0x8(%rbp)
  15:   31 c0                   xor    %eax,%eax
  17:   c7 45 d8 00 00 00 00    movl   $0x0,-0x28(%rbp)
  1e:   eb 64                   jmp    84 <main+0x84>
  20:   8b 45 d8                mov    -0x28(%rbp),%eax
  23:   89 c7                   mov    %eax,%edi
  25:   e8 00 00 00 00          callq  2a <main+0x2a>
                        26: R_X86_64_PC32       foo-0x4
  2a:   89 45 dc                mov    %eax,-0x24(%rbp)
  2d:   8b 55 dc                mov    -0x24(%rbp),%edx
  30:   48 8d 45 e0             lea    -0x20(%rbp),%rax

【问题讨论】:

  • 这是一个.o,所以地址是相对于该目标文件中的节的开头组成的。 (还有为什么调用地址是全零的相对位移,尚未由链接器填充)。否则重复meaning of objdump -d output assembly。我将disas 别名为objdump -drwC -Mintel

标签: assembly objdump


【解决方案1】:

这不是不言自明:

偏移量、机器码、对应的汇编代码

【讨论】:

    【解决方案2】:

    正如 Peter Cordes 所说,在不同的操作系统上存在微小差异。

    链接:https://stackoverflow.com/a/67618638/575842

    【讨论】:

    • 一般不会对不同的问题发布相同的答案。如果发现重复项,请将其中一个标记为与另一个重复。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-27
    • 2013-08-22
    • 1970-01-01
    • 2016-05-02
    • 1970-01-01
    • 2020-01-01
    • 1970-01-01
    相关资源
    最近更新 更多