Pregunta

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?

¿Fue útil?

Solución

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.

Otros consejos

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top