mirror of
https://github.com/bminor/binutils-gdb.git
synced 2025-11-16 12:34:43 +00:00
objdump: Check the SEC_CODE bit for code
If a shared library has
$ readelf -D -sW x.so | grep _PROCEDURE_LINKAGE_TABLE_
3: 00000000000002c0 0 OBJECT GLOBAL DEFAULT 5 _PROCEDURE_LINKAGE_TABLE_
$
Disassembler treats PLT0 as data:
$ objdump -dw x.so
x.so: file format elf64-x86-64
Disassembly of section .plt:
00000000000002c0 <_PROCEDURE_LINKAGE_TABLE_>:
2c0: ff 35 7a 01 10 00 ff 25 7c 01 10 00 0f 1f 40 00 .5z....%|.....@.
00000000000002d0 <foo@plt>:
2d0: ff 25 7a 01 10 00 jmp *0x10017a(%rip) # 100450 <foo>
2d6: 68 00 00 00 00 push $0x0
2db: e9 e0 ff ff ff jmp 2c0 <_PROCEDURE_LINKAGE_TABLE_>
Disassembly of section .text:
00000000000002e0 <func>:
2e0: e8 eb ff ff ff call 2d0 <foo@plt>
2e5: c3 ret
Check the SEC_CODE bit on section for code.
PR binutils/33389
* objdump.c (disassemble_section): Check SEC_CODE for code.
Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
This commit is contained in:
@@ -4091,6 +4091,7 @@ disassemble_section (bfd *abfd, asection *section, void *inf)
|
||||
if (disassemble_all
|
||||
|| sym == NULL
|
||||
|| sym->section != section
|
||||
|| (section->flags & SEC_CODE) != 0
|
||||
|| bfd_asymbol_value (sym) > addr
|
||||
|| ((sym->flags & BSF_OBJECT) == 0
|
||||
&& (strstr (bfd_asymbol_name (sym), "gnu_compiled")
|
||||
|
||||
Reference in New Issue
Block a user