Question

I wrote a very basic Hello World program to know about sections. After using objdump I got all sections. I am using ubuntu 12.04.

in output I found it like that :

  1. Disassembly of section .init

  2. Disassembly of section .plt

  3. Disassembly of section .text

  4. __do_global_dtors_aux

  5. Disassembly of section .fini

I want to know what those sections are? what data they store? Specially .plt and .fini. About .init and .text I can guess, but what about others?

Was it helpful?

Solution

You should google it : here is the first result. It's a good start to learn more about ELF format.

About .init and .fini, it's here.

Here is a list of the ELF sections with a brief description.

OTHER TIPS

From this handy page:

The next section I want to mention is the .plt section. This contains the jump table that is used when we call functions in the shared library.

And from this page:

.fini

This section holds executable instructions that contribute to the process termination code. That is, when a program exits normally, the system arranges to execute the code in this section.

you might find this brief tutorial helpful. It also contains links to related literature.

"The linker demystified, part 1": http://www.rtos.be/?p=2166

I hope it helps.

Fernando

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top