DTrace Probes

Eine Liste von DTrace Probes und deren Funktionalität. „Modul“ und „Funktion“ können in benutzerdefinierten Probes (bekannt als USDT) nicht definiert werden, daher werden sie nicht angegeben. Probe-Definitionen sind im Format von

provider:module:function:name(arguments)

Da Modul und Funktion nicht angegeben werden können, bleiben sie leer. Eine Beispiel-Probe-Definition für Ruby wäre dann

ruby:::method-entry(class name, method name, file name, line number)

Wobei „ruby“ der Provider-Name ist, Modul- und Funktionsnamen leer sind, der Probe-Name „method-entry“ ist und die Probe vier Argumente hat

Probes-Liste

Stabilität

Bevor wir die spezifischen Probes auflisten, sprechen wir über Stabilität. Die Stabilität von Probes wird in der Datei probes.d am Ende der pragma D attributes Zeilen deklariert. Hier ist eine Beschreibung jeder Stabilitätsdeklaration.

Stabilität des Provider-Namens

Der Provider-Name „ruby“ wurde als stabil deklariert. Es ist unwahrscheinlich, dass wir den Provider-Namen von „ruby“ in etwas anderes ändern.

Stabilität von Modul und Funktion

Da wir keine Werte für Modul- und Funktionsnamen angeben dürfen, ist der von uns bereitgestellte Wert (kein Wert) als stabil deklariert.

Stabilität des Probe-Namens

Die Probe-Namen können sich in Zukunft ändern, daher sind sie als „Evolving“ markiert. Verbraucher sollten sich nicht darauf verlassen, dass diese Namen stabil sind.

Stabilität der Probe-Argumente

Die an die Probes übergebenen Parameter können sich in Zukunft ändern, daher sind sie als „Evolving“ markiert. Verbraucher sollten sich nicht darauf verlassen, dass diese stabil sind.

Deklarierte Probes

Probes werden in der Datei probes.d definiert. Hier sind die deklarierten Probes zusammen mit dem Zeitpunkt, an dem sie ausgelöst werden, und den Argumenten, die sie entgegennehmen.

ruby:::method-entry(classname, methodname, filename, lineno);

Diese Probe wird kurz vor dem Eintritt in eine Methode ausgelöst.

Klassenname

Name der Klasse (ein String)

Methodenname

Name der auszuführenden Methode (ein String)

Dateiname

der Dateiname, in dem die Methode _aufgerufen wird_ (ein String)

Zeilennummer

die Zeilennummer, an der die Methode _aufgerufen wird_ (ein Int)

HINWEIS: Wird nur ausgelöst, wenn das Tracing aktiviert ist, z. B. mit: TracePoint.new{}.enable. Weitere Details finden Sie unter Feature#14104.

ruby:::method-return(classname, methodname, filename, lineno);

Diese Probe wird kurz nach der Rückkehr einer Methode ausgelöst. Die Argumente sind dieselben wie bei „ruby:::method-entry“.

HINWEIS: Wird nur ausgelöst, wenn das Tracing aktiviert ist, z. B. mit: TracePoint.new{}.enable. Weitere Details finden Sie unter Feature#14104.

ruby:::cmethod-entry(classname, methodname, filename, lineno);

Diese Probe wird kurz vor dem Eintritt in eine C-Methode ausgelöst. Die Argumente sind dieselben wie bei „ruby:::method-entry“.

ruby:::cmethod-return(classname, methodname, filename, lineno);

Diese Probe wird kurz vor der Rückkehr einer C-Methode ausgelöst. Die Argumente sind dieselben wie bei „ruby:::method-entry“.

ruby:::require-entry(requiredfile, filename, lineno);

Diese Probe wird bei Aufrufen von rb_require_safe ausgelöst (wenn eine Datei angefordert wird).

angeforderte Datei

der Name der anzufordernden Datei (String).

Dateiname

die Datei, die „require“ aufgerufen hat (String).

Zeilennummer

die Zeilennummer, an der der Aufruf von require erfolgte (Int).

ruby:::require-return(requiredfile, filename, lineno);

Diese Probe wird kurz vor der Rückkehr von rb_require_safe ausgelöst (wenn eine Datei angefordert wird). Die Argumente sind dieselben wie bei „ruby:::require-entry“. Diese Probe wird nicht ausgelöst, wenn während der Dateianforderung eine Ausnahme auftritt.

ruby:::find-require-entry(requiredfile, filename, lineno);

Diese Probe wird kurz vor dem Aufruf von search_required ausgelöst. search_required bestimmt, ob die Datei bereits angefordert wurde, indem die geladenen Features ($") durchsucht werden, und ermittelt andernfalls, welche Datei geladen werden muss.

angeforderte Datei

die anzufordernde Datei (String).

Dateiname

die Datei, die „require“ aufgerufen hat (String).

Zeilennummer

die Zeilennummer, an der der Aufruf von require erfolgte (Int).

ruby:::find-require-return(requiredfile, filename, lineno);

Diese Probe wird kurz nach der Rückkehr von search_required ausgelöst. Weitere Details finden Sie in der Dokumentation für „ruby:::find-require-entry“. Die Argumente für diese Probe sind dieselben wie bei „ruby:::find-require-entry“.

ruby:::load-entry(loadedfile, filename, lineno);

Diese Probe wird ausgelöst, wenn Aufrufe von „load“ erfolgen. Die Argumente sind dieselben wie bei „ruby:::require-entry“.

ruby:::load-return(loadedfile, filename, lineno);

Diese Probe wird ausgelöst, wenn „load“ zurückkehrt. Die Argumente sind dieselben wie bei „ruby:::load-entry“.

ruby:::raise(classname, filename, lineno);

Diese Probe wird ausgelöst, wenn eine Ausnahme ausgelöst wird.

Klassenname

der Klassenname der ausgelösten Ausnahme (String)

Dateiname

der Dateiname, in dem die Ausnahme ausgelöst wurde (String)

Zeilennummer

die Zeilennummer in der Datei, in der die Ausnahme ausgelöst wurde (Int)

ruby:::object-create(classname, filename, lineno);

Diese Probe wird ausgelöst, wenn ein Objekt zugewiesen werden soll.

Klassenname

die Klasse des zugewiesenen Objekts (String)

Dateiname

der Dateiname, in dem das Objekt zugewiesen wird (String)

Zeilennummer

die Zeilennummer in der Datei, in der das Objekt zugewiesen wird (Int)

ruby:::array-create(length, filename, lineno);

Diese Probe wird ausgelöst, wenn ein Array zugewiesen werden soll.

Länge

die Größe des Arrays (Long)

Dateiname

der Dateiname, in dem das Array zugewiesen wird (String)

Zeilennummer

die Zeilennummer in der Datei, in der das Array zugewiesen wird (Int)

ruby:::hash-create(length, filename, lineno);

Diese Probe wird ausgelöst, wenn ein Hash zugewiesen werden soll.

Länge

die Größe des Hashs (Long)

Dateiname

der Dateiname, in dem der Hash zugewiesen wird (String)

Zeilennummer

die Zeilennummer in der Datei, in der der Hash zugewiesen wird (Int)

ruby:::string-create(length, filename, lineno);

Diese Probe wird ausgelöst, wenn ein String zugewiesen werden soll.

Länge

die Größe des Strings (Long)

Dateiname

der Dateiname, in dem der String zugewiesen wird (String)

Zeilennummer

die Zeilennummer in der Datei, in der der String zugewiesen wird (Int)

ruby:::symbol-create(str, filename, lineno);

Diese Probe wird ausgelöst, wenn ein Symbol zugewiesen werden soll.

str

der Inhalt des Symbols (String)

Dateiname

der Dateiname, in dem der String zugewiesen wird (String)

Zeilennummer

die Zeilennummer in der Datei, in der der String zugewiesen wird (Int)

ruby:::parse-begin(sourcefile, lineno);

Wird kurz vor dem Parsen und Kompilieren einer Quelldatei ausgelöst.

Quelldatei

die zu parsendende Datei (String)

Zeilennummer

die Zeilennummer, an der die Quelle beginnt (Int)

ruby:::parse-end(sourcefile, lineno);

Wird kurz nach dem Parsen und Kompilieren einer Quelldatei ausgelöst.

Quelldatei

die zu parsendende Datei (String)

Zeilennummer

die Zeilennummer, an der die Quelle endet (Int)

ruby:::gc-mark-begin();

Wird zu Beginn einer Markierungsphase ausgelöst.

ruby:::gc-mark-end();

Wird am Ende einer Markierungsphase ausgelöst.

ruby:::gc-sweep-begin();

Wird zu Beginn einer Sweep-Phase ausgelöst.

ruby:::gc-sweep-end();

Wird am Ende einer Sweep-Phase ausgelöst.

ruby:::method-cache-clear(class, sourcefile, lineno);

Wird ausgelöst, wenn der Methodencache geleert wird.

Klasse

der zu leerende Klassenname oder „global“ (String)

Quelldatei

die zu parsendende Datei (String)

Zeilennummer

die Zeilennummer, an der die Quelle endet (Int)