2013-07-04 10 views
5

Napisałem bardzo prosty program Hello World, aby dowiedzieć się więcej o sekcjach. Po użyciu objdump otrzymałem wszystkie sekcje. Używam ubuntu 12.04.Demontaż sekcji w programie c

produkcji Znalazłem go tak:

  1. Demontaż części .init

  2. Demontaż sekcji plt

  3. demontaż sekcji .text

  4. __do_global_dtors_aux

  5. Demontaż części .fini

Chcę wiedzieć, co te sekcje są? jakie dane przechowują? Specjalnie .plt i .fini. O .init i .text Mogę zgadywać, ale co z innymi?

+0

mogę wiedzieć skąd skompilować ten plik –

+0

pierwszy 'gcc -o objectfile programname.c' następnie' objdump objectfile'. – someone

Odpowiedz

0

From this handy page:

Następny rozdział chcę wspomnieć jest sekcja .plt. Zawiera tabelę przeskoku, która jest używana, gdy wywołujemy funkcje w udostępnianej bibliotece.

I from this page:

.fini

Ta sekcja posiada instrukcje wykonywalne, które przyczyniają się do kodu zakończenia procesu. Oznacza to, że gdy program wychodzi normalnie, system organizuje wykonanie kodu w tej sekcji.

0

pomocny może okazać się ten krótki samouczek. Zawiera również linki do pokrewnej literatury.

"Łącznik demystified, część 1": http://www.rtos.be/?p=2166

Mam nadzieję, że to pomaga.

Fernando

Powiązane problemy