objdump 在反汇编和仅打印符号时显示不同的符号

objdump 在反汇编和仅打印符号时显示不同的符号

Ubuntu 18.04

我有一个ELF64从 C 源文件编译并与共享对象链接的简单二进制文件。我尝试检查它objdump并得到以下困惑:

$ objdump -d -j .plt bin

bin:     file format elf64-x86-64


Disassembly of section .plt:

00000000000006a0 <.plt>:
 6a0:   ff 35 62 09 20 00       pushq  0x200962(%rip)        # 201008 <_GLOBAL_OFFSET_TABLE_+0x8>
 6a6:   ff 25 64 09 20 00       jmpq   *0x200964(%rip)        # 201010 <_GLOBAL_OFFSET_TABLE_+0x10>
 6ac:   0f 1f 40 00             nopl   0x0(%rax)

00000000000006b0 <foo@plt>:
 6b0:   ff 25 62 09 20 00       jmpq   *0x200962(%rip)        # 201018 <foo>
 6b6:   68 00 00 00 00          pushq  $0x0
 6bb:   e9 e0 ff ff ff          jmpq   6a0 <.plt>

00000000000006c0 <dlopen@plt>:
 6c0:   ff 25 5a 09 20 00       jmpq   *0x20095a(%rip)        # 201020 <dlopen@GLIBC_2.2.5>
 6c6:   68 01 00 00 00          pushq  $0x1
 6cb:   e9 d0 ff ff ff          jmpq   6a0 <.plt>

00000000000006d0 <__printf_chk@plt>:
 6d0:   ff 25 52 09 20 00       jmpq   *0x200952(%rip)        # 201028 <__printf_chk@GLIBC_2.3.4>
 6d6:   68 02 00 00 00          pushq  $0x2
 6db:   e9 c0 ff ff ff          jmpq   6a0 <.plt>

但是,当只从一个部分打印符号时,plt我没有得到输出:

$ objdump -t -j .plt bin

bin:     file format elf64-x86-64

SYMBOL TABLE:
00000000000006a0 l    d  .plt   0000000000000000              .plt

为什么拆卸时没有plt打印该部分的符号?objdump -t

相关内容