Handbuch zur dynamischen Ablaufverfolgung in Solaris

Besondere Aktionen

In diesem Abschnitt werden Aktionen beschrieben, die weder Daten aufzeichnen noch destruktiv sind.

Spekulative Aktionen

Für die spekulative Ablaufverfolgung stehen die Aktionen speculate(), commit() und discard() zur Verfügung. Diese Aktionen werden in Kapitel 13Spekulative Ablaufverfolgung erläutert.

exit()

void exit(int Status)

Die Aktion exit() beendet die Ablaufverfolgung unverzüglich und teilt dem DTrace-Verbraucher mit, dass er die Aufzeichnung abbrechen, die erforderliche abschließende Verarbeitung durchführen und exit(3C) mit dem angegebenen Status aufrufen soll. Da exit() einen Status an die Benutzerebene zurückgibt, ist dies zwar eine Daten aufzeichnende Aktion, aber im Gegensatz zu anderen Daten aufzeichnenden Aktionen kann exit() nicht spekulativ verfolgt werden. Unabhängig von der Pufferungsregel bewirkt exit(), dass der DTrace-Verbraucher beendet wird. Da exit() eine Daten aufzeichnende Aktion ist, kann sie verworfen werden.

Wenn exit() aufgerufen wird, werden nur die auf anderen CPUs bereits laufenden DTrace-Aktionen abgeschlossen. Auf keiner CPU erfolgen jedoch neue Aktionen. Die einzige Ausnahme zu dieser Regel ist die Abarbeitung des Prüfpunkts END, der aufgerufen wird, nachdem der DTrace-Verbraucher die Aktion exit() verarbeitet und angegeben hat, dass die Ablaufverfolgung zu beenden ist.