14.01.2015 Aufrufe

Dynamische Adaption in heterogenen verteilten eingebetteten ...

Dynamische Adaption in heterogenen verteilten eingebetteten ...

Dynamische Adaption in heterogenen verteilten eingebetteten ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

4.2 Modularisierung<br />

static void world() {<br />

pr<strong>in</strong>tf ("World!\n");<br />

}<br />

static void hello() {<br />

pr<strong>in</strong>tf ("Hello\n");<br />

}<br />

void foo() {<br />

hello();<br />

world();<br />

}<br />

(a) Quellcode<br />

(b) B<strong>in</strong>ärdaten <strong>in</strong> ELF-Datei<br />

Abbildung 4.7: E<strong>in</strong> Symbol als Ziel mehrerer Relokationen<br />

Dieses Beispiel enthält zwei lokale Funktionen hello und world. Beide werden von der Funktion foo aufgerufen.<br />

Da die beiden Funktionen jedoch lokal s<strong>in</strong>d, erzeugt der Compiler ke<strong>in</strong>e Symbole für sie. Stattdessen verwendet er das<br />

Sektionssymbol .text <strong>in</strong> den Aufrufen aus der Funktion foo, wie anhand der Relokationstabelle zu sehen ist.<br />

Dasselbe Vorgehen kann man auch bei der Verwendung der Datensektion beobachten. Sowohl <strong>in</strong> der Funktion hello<br />

als auch <strong>in</strong> der Funktion world wird das Sektionssymbol .data verwendet, um den entsprechenden Str<strong>in</strong>g zu<br />

lokalisieren.<br />

Die Informationen <strong>in</strong> der Symboltabelle reichen <strong>in</strong> diesem Beispiel nicht aus, um den Inhalt der Sektionen <strong>in</strong> e<strong>in</strong>zelne<br />

Funktionen oder Datenelemente aufzuteilen.<br />

53

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!