Handbuch zur dynamischen Ablaufverfolgung in Solaris

Deklarieren von Prüfpunkten

SDT-Prüfpunkte werden mit den Makros DTRACE_PROBE, DTRACE_PROBE1, DTRACE_PROBE2, DTRACE_PROBE3 und DTRACE_PROBE4 aus <sys/sdt.h> deklariert. Der Modulname und Funktionsname eines auf SDT basierenden Prüfpunkts entspricht dem Kernelmodul und der Funktion des Prüfpunkts. Der Name des Prüfpunkts ist von dem Namen in der Makro DTRACE_PROBEn abhängig. Wenn der Name keine zwei aufeinander folgenden Unterstriche (__) enthält, ist der Name des Prüfpunkts mit der Schreibweise in der Makro identisch. Enthält er jedoch zwei aufeinander folgende Unterstriche, werden diese im Prüfpunktnamen in einen Gedankenstrich ( -) umgewandelt. Wenn beispielsweise eine DTRACE_PROBE-Makro transaction__start angibt, heißt der SDT-Prüfpunkt transaction-start. Durch diese Ersetzung kann C-Code Makronamen bereitstellen, die keine gültigen C-Bezeichner sind, ohne eine Zeichenkette anzugeben.

DTrace nimmt den Kernelmodul- und den Funktionsnamen bereits als Bestandteil des Tupels auf, das einen Prüfpunkt bezeichnet. Sie brauchen diese Angaben also nicht mehr in den Prüfpunktnamen einzufügen, um Namensraumkollisionen zu vermeiden. Sie können den Befehl dtrace -l -P sdt -m Modul auf das Treibermodul anwenden, um die installierten Prüfpunkte sowie die für DTrace-Benutzer sichtbaren vollständigen Namen aufzulisten.