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 Basisschicht e<strong>in</strong>es Verwalters<br />

COFF<br />

Beim Entwurf des COFF-B<strong>in</strong>ärformats [Gir88, Del96] wurden von Anfang an mehr Informationen<br />

<strong>in</strong>tegriert, um e<strong>in</strong>e spätere Fehlersuche zu ermöglichen. So s<strong>in</strong>d die Symboltabellen erweitert und<br />

enthalten zu jedem E<strong>in</strong>trag die Art und den Typ des beschriebenen Datums. Auch das Def<strong>in</strong>ieren von<br />

eigenen Typen wird <strong>in</strong> den COFF-Debug<strong>in</strong>formationen unterstützt. Zusätzlich wurde e<strong>in</strong>e Tabelle mit<br />

Zeilennummer<strong>in</strong>formationen h<strong>in</strong>zugefügt.<br />

Nachteil der COFF-Debug<strong>in</strong>formationen ist, dass das Format kaum Erweiterungsmöglichkeiten<br />

vorsieht und die angebotenen Informationen nur die grundlegenden Daten der Elemente beschreibt. So<br />

wird beispielsweise die Größe von Daten oder Funktionen nicht explizit angegeben. Außerdem werden<br />

von den Compilern oft nur Debug<strong>in</strong>formationen für global sichtbare Elemente erzeugt, nicht aber für<br />

lokale Variablen oder lokale (statische) Funktionen.<br />

Microsoft CodeView und PDB<br />

Microsoft verwendet zwar für die W<strong>in</strong>dows-Betriebssysteme e<strong>in</strong>e abgewandelte Version des COFF-<br />

Formats, um die B<strong>in</strong>ärdateien zu speichern; die Debug<strong>in</strong>formationen <strong>in</strong>nerhalb von COFF werden<br />

jedoch nicht verwendet. Stattdessen werden zusätzliche Informationen <strong>in</strong> e<strong>in</strong>em proprietären Format<br />

erzeugt und gespeichert. Das Format hat sich dabei im Laufe der Zeit verändert. Zunächst wurden<br />

die Informationen <strong>in</strong> e<strong>in</strong>er eigenen Sektion <strong>in</strong>nerhalb der PECOFF-Datei im CodeView Format<br />

(CV4) [TIS93] gespeichert. Mit Visual Studio 6.0 führte Microsoft die Programm DataBase (PDB) e<strong>in</strong>,<br />

welche die Debug<strong>in</strong>formationen außerhalb der B<strong>in</strong>ärdatei <strong>in</strong> e<strong>in</strong>er eigenen Datei abspeichert [Mic05].<br />

Die ursprüngliche Version (PDB 2.0) wurde <strong>in</strong> nachfolgenden Versionen des Visual Studios (Visual<br />

Studio .NET) durch e<strong>in</strong>e erweiterte, neue, aber <strong>in</strong>kompatible Version (PDB 7.0) ersetzt.<br />

Während das CodeView-Format noch offiziell dokumentiert ist [SS + 96], werden für die Programm<br />

DataBase lediglich Bibliotheken angeboten, um auf die Daten zuzugreifen 6 . Anhand der Schnittstellen<br />

kann man jedoch schließen, dass die PDB umfangreiche Debug<strong>in</strong>formationen enthält.<br />

DWARF<br />

Das DWARF 7 -Format gibt es mittlerweile <strong>in</strong> der Version 3. Die erste Version entstand <strong>in</strong> den 1980er<br />

Jahren, zusammen mit dem ELF-B<strong>in</strong>ärformat, als Format des Debuggers sdb im Unix System V<br />

Release 4 (SVR4). E<strong>in</strong> großer Nachteil des Formats war jedoch, dass die Informationen nicht sehr<br />

effizient gespeichert wurden und somit unnötig viel Platz benötigten. DWARF 2 entschärfte diesen<br />

Nachteil und speichert die Daten effizienter. Dafür ist DWARF 2 vollkommen <strong>in</strong>kompatibel zu DWARF 1.<br />

Erst Ende der 1990er Jahre etablierte sich DWARF zum Standarddebugformat für Unix-Systeme, vorher<br />

wurde zum Teil ELF mit stabs-Informationen verwendet. Da die Standardisierung von DWARF 2 nie<br />

abgeschlossen wurde und Bedarf für die Unterstützung von 64-bit-Systemen entstand, wurde im Jahr<br />

2006 DWARF 3 als kompatibler Nachfolger standardisiert [Fsg05]. E<strong>in</strong>e E<strong>in</strong>führung und H<strong>in</strong>tergründe<br />

zur Geschichte des DWARF-Formats kann man bei Michael Eager [Eag07] nachlesen.<br />

Das DWARF-Format bietet Unterstützung zur Beschreibung der üblichen Debug<strong>in</strong>formationen.<br />

Besonders s<strong>in</strong>d dabei die umfangreichen und flexiblen Möglichkeiten zu nennen, um die Position<br />

e<strong>in</strong>er Variable oder e<strong>in</strong>es Parameters anzugeben. In DWARF 2 wurde die Möglichkeit h<strong>in</strong>zugefügt,<br />

6 Zum Zugriff auf die Programm DataBase bietet Microsoft die Bibliothek DbgHlp und das umfangreichere Entwicklungspaket<br />

DIA (Debug Interface Access SDK) an.<br />

7 Die Bezeichnung DWARF wird häufig als Akronym für Debugg<strong>in</strong>g With Attributed Record Format gedeutet. Tatsächlich<br />

taucht diese Bezeichnung jedoch nie <strong>in</strong> e<strong>in</strong>er der DWARF-Spezifikationen auf. Es wird vermutet, dass der Name DWARF<br />

als Wortspiel auf das B<strong>in</strong>ärformat ELF entstanden ist [Eag07].<br />

58

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!