Handbuch zur dynamischen Ablaufverfolgung in Solaris

Optionen für die Versionsverwaltung

Standardmäßig werden alle mit dtrace - s kompilierten oder mit den dtrace-Befehlszeilenoptionen -P, - m, -f, -n oder -i angegebenen D-Programme an die neueste D-Programmierschnittstelle gebunden, die der D-Compiler bereitstellt. Die aktuelle Version der D-Programmierschnittstelle lässt sich mit der dtrace-Option -V ermitteln:


$ dtrace -V
dtrace: Sun D 1.0
$

Wenn Sie eine Bindung an eine bestimmte Version der D-Programmierschnittstelle festlegen möchten, können Sie die Option version auf eine geeignete Versionszeichenkette setzen. Ähnlich wie die DTrace-Optionen (siehe Kapitel 16Optionen und Tunables ) kann die Versionsoption entweder mit dtrace -x in der Befehlszeile gesetzt:


# dtrace -x version=1.0 -n 'BEGIN{trace("hello");}'

oder mithilfe der Syntax #pragma D option in der D-Programmquelldatei festgelegt werden:

#pragma D option version=1.0

BEGIN
{
	trace("hello");
}

Bei der Anforderung einer Versionsbindung anhand der Syntax #pragma D option muss diese Direktive an den Anfang der D-Programmdatei vor jede Deklaration oder Prüfpunktklausel gesetzt werden. Wenn das Argument für die Versionsbindung keiner gültigen Versionszeichenkette entspricht oder sich auf eine Version bezieht, die nicht vom D-Compiler zur Verfügung gestellt wird, erscheint eine entsprechende Fehlermeldung und die Kompilierung schlägt fehl. Folglich können Sie mithilfe der Versionsbindungseinrichtung auch bewirken, dass die Ausführung eines D-Skripts auf einer älteren Version von DTrace mit einer eindeutigen Fehlermeldung scheitert.

Bevor der D-Compiler die Programmdeklarationen und Klauseln kompiliert, lädt er die D-Typen, -Funktionen, -Konstanten und -Übersetzer für die entsprechende Schnittstellenversion in den eigenen Namensraum ein. Die Optionen für die Versionsbindung, die Sie angeben, bestimmen also einfach, welche Namens-, Typ- und Übersetzersätze zusätzlich zu den in Ihrem Programm definierten Variablen, Typen und Übersetzern für das Programm sichtbar sind. Durch die Versionsbindung wird verhindert, dass der D-Compiler neuere Schnittstellen einlädt, die möglicherweise mit den Deklarationen in Ihrem Programmquellcode unvereinbare Namen oder Übersetzer definieren und folglich einen Kompilierungsfehler verursachen würden. Unter Bezeichnernamen und Schlüsselwörter finden Sie Tipps für die Wahl von Bezeichnernamen, die einen gewissen Schutz vor Konflikten mit Schnittstellen in künftigen Versionen von DTrace bieten.