I'm currently doing my own objdump implementation in C.
For my -s
option, I have to show the full contents of the sections of an ELF file.
I'm doing it well, but I'm showing more sections than the "real" objdump.
In fact, it does not output the .bss
, .shstrtab
, .symtab
and .strtab
sections.
I'm looking around the sh_flags
value on the Shdr
struct but I can't find any logic...
Why does objdump -s <ELF file>
not show these sections ?
Why objdump -s does not shows these sections ?
Objdump is based on libbfd
, which abstracts away many complexities of ELF, and was written when objects tended to only have three sections.
As such, objdump
is quite deficient. In addition to not showing you (some) existing sections, it may also "synthesize" sections that don't exist at all, and do other weird tricks. This is more of a libbfd
fault -- its abstraction layer simply doesn't tell objdump about the "missing" sections.
TL;DR: don't use objdump
. Use readelf
instead.