2013-07-04 9 views
5

Ich schrieb ein sehr einfaches Programm Hello World über Abschnitte kennen. Nach der Verwendung von objdump habe ich alle Sektionen bekommen. Ich verwende ubuntu 12.04.Demontage von Abschnitten in einem c-Programm

in Ausgangs fand ich, dass es wie:

  1. Disassembly des Abschnitts

    .init
  2. Disassembly des Abschnitts .plt

  3. Disassembly des Abschnitts .text

  4. __do_global_dtors_aux

  5. Ausbau des Abschnitts .fini

ich wissen will, was diese Abschnitte sind? Welche Daten speichern sie? Speziell .plt und .fini. Über .init und .text kann ich raten, aber was ist mit anderen?

+0

kann ich wissen, wie Sie diese Datei –

+0

zuerst kompilieren hat gcc -o object programname.c' dann 'objdump objectfile'. – someone

Antwort

0

From this handy page:

Der nächste Abschnitt I der PLT-Abschnitt erwähnen möchte. Dies enthält die Sprungtabelle, die verwendet wird, wenn wir Funktionen in der gemeinsam genutzten Bibliothek aufrufen.

Und from this page:

.fini

Dieser Bereich enthält ausführbare Anweisungen, die zur Beendigung des Prozesses Code beitragen. Das heißt, wenn ein Programm normal endet, veranlasst das System, den Code in diesem Abschnitt auszuführen.

0

Sie könnten diese kurze Anleitung hilfreich finden. Es enthält auch Links zu verwandter Literatur.

"Der Linker entmystifiziert, Teil 1": http://www.rtos.be/?p=2166

Ich hoffe, es hilft.

Fernando