Handbuch zur dynamischen Ablaufverfolgung in Solaris

Externe Symbole und Typen

Die DTrace-Instrumentation wird innerhalb des Solaris-Betriebssystemkerns ausgeführt. Das heißt, dass neben den speziellen DTrace-Variablen und Prüfpunktargumenten auch auf Kerneldatenstrukturen, Symbole und Typen zugegriffen werden kann. Dank dieser Fähigkeiten können fortgeschrittene DTrace-Benutzer, Administratoren, Wartungstechniker und Treiberentwickler das Verhalten des Betriebssystemkernels und der Gerätetreiber auf den unteren Ebenen beobachten. In den Literaturangaben zu Beginn dieses Dokuments finden Sie Titel zu den Interna des Betriebssystems Solaris.

In D kommt das Backquote-Zeichen (oder Accent grave) (`) als spezieller Bereichsoperator zum Ansprechen von Symbolen zum Einsatz, die zwar im Betriebssystem, nicht aber im D-Programm definiert sind. So enthält der Solaris-Kernel beispielsweise eine C-Deklaration eines über das System abstimmbaren Parameters (Tunables) namens kmem_flags zum Aktivieren von Debugging-Leistungsmerkmalen für die Speicherzuweisung. Im Solaris Tunable Parameters Reference Manual finden Sie weitere Informationen zu kmem_flags. Dieses Tunable ist im Kernel-Quellcode wie folgt in C deklariert:

int kmem_flags;

Mit folgender D-Anweisung lässt sich der Wert dieser Variable in einem D-Programm verfolgen:

trace(`kmem_flags);

DTrace weist jedem Kernelsymbol den entsprechenden Typ aus dem C-Betriebssystemcode zu und bietet dadurch einen einfachen quellcodebasierten Zugriff auf die nativen Datenstrukturen des Betriebssystems. Die Namen von Kernelsymbolen werden in einem von den D-Variablen- und Funktionsbezeichnern getrennten Namensraum gehalten, sodass keine Gefahr eines Konflikts zwischen diesen Namen und Ihren D-Variablen besteht.

Sie haben nun Ihre Blitztour durch DTrace beendet und viele der grundlegenden DTrace-Bausteine kennen gelernt, die zum Schreiben größerer, komplexerer D-Programme benötigt werden. In den nachfolgenden Kapiteln wird der vollständige Regelsatz für D beschrieben und erläutert, wie DTrace komplexe Performancemessungen und Funktionsanalysen des Systems zu einer leichten Angelegenheit macht. Später erfahren Sie, wie Sie mit DTrace das Verhalten von Benutzeranwendungen mit dem Systemverhalten verbinden können und sich so der gesamte Software-Stack analysieren lässt.

Sie haben gerade erst begonnen!