Handbuch zur dynamischen Ablaufverfolgung in Solaris

Schnittstellenattribute

DTrace beschreibt Schnittstellen anhand einer Dreiergruppe von Attributen, die aus zwei Stabilitätswerten und einer Abhängigkeitsklasse besteht. Vereinbarungsgemäß werden die Schnittstellenattribute in folgender Reihenfolge und durch Schrägstriche getrennt wiedergegeben:

Namensstabilität / Datenstabilität / Abhängigkeitsklasse

Die Namensstabilität einer Schnittstelle bezeichnet die Stabilitätsstufe ihres Namens, wie er im D-Programm oder in der dtrace(1M)-Befehlszeile erscheint. Die D-Variable execname zum Beispiel weist einen stabilen (Stable) Namen auf: Sun garantiert, dass dieser Name gemäß den zuvor für Schnittstellen des Typs „Stable“ aufgeführten Regeln in Ihren D-Programmen weiterhin unterstützt wird.

Die Datenstabilität einer Schnittstelle unterscheidet sich von der Stabilität ihres Namens. Diese Stabilitätsbezeichnung drückt das Bemühen seitens Sun aus, die von der Schnittstelle verwendeten Datenformate und die eventuell entsprechende Datensemantik beizubehalten. Die D-Variable pid zum Beispiel ist eine stabile (Stable) Schnittstelle: Prozess-IDs stellen in Solaris ein stabiles Konzept dar und Sun garantiert, dass die Variable pid im Einklang mit den Regeln für Schnittstellen des Typs „Stable“ den Typ pid_t mit der auf die Prozess-ID des Threads, der einen bestimmten Prüfpunkt ausgelöst hat, gesetzten Semantik behält.

Die Abhängigkeitsklasse einer Schnittstelle unterscheidet sich von ihrer Namens- und Datenstabilität und gibt an, ob die Schnittstelle nur für die aktuelle Betriebsplattform oder den aktuellen Prozessor Gültigkeit besitzt.

Wie wir gleich sehen werden, kennzeichnen DTrace und der D-Compiler die Stabilitätsattribute sämtlicher DTrace-Schnittstellengrößen. Dazu gehören Provider, Prüfpunktbeschreibungen, D-Variablen, D-Funktionen, Typen und Programmanweisungen selbst. Beachten Sie, dass sich die drei Werte unabhängig voneinander verhalten. Beispielsweise besitzt die D-Variable curthread die Attribute Stable/Private/Common: Der Variablenname ist „Stable“ und allen Solaris-Betriebsplattformen gemeinsam („Common“), aber die Variable bietet Zugang zu einem privaten („Private“) Datenformat, das ein Produkt der Solaris-Kernelimplementierung ist. Die meisten D-Variablen besitzen die Attribute Stable/Stable/Common, so wie auch die von Ihnen selbst definierten Variablen.