Handbuch zur dynamischen Ablaufverfolgung in Solaris

Anzeige von Aggregaten

Standardmäßig werden Aggregate in der Reihenfolge ihres Auftretens im D-Programm angezeigt. Mit der Funktion printa() für die Ausgabe der Aggregate können Sie dieses Verhalten außer Kraft setzen. Die Funktion printa() bietet auch die Möglichkeit, die Aggregatdaten genau zu formatieren. Hierzu setzen Sie, wie in Kapitel 12Formatierung der Ausgabe beschrieben, eine Formatzeichenkette ein.

Wenn ein Aggregat nicht durch eine printa()-Anweisung im D-Programm formatiert wird, erstellt der Befehl dtrace eine Momentaufnahme der Aggregatdaten und gibt die Ergebnisse nach Abschluss der Ablaufverfolgung im Standard-Aggregatformat aus. Bei Verwendung einer printa()-Anweisung zur Formatierung eines bestimmten Aggregats wird das Standardverhalten deaktiviert. Indem Sie die Anweisung printa(@ Aggregatname) in eine dtrace:::END-Prüfpunktklausel in Ihrem Programm einfügen, erhalten Sie äquivalente Ergebnisse. Im Standardausgabeformat für die Aggregatfunktionen avg(), count(), min(), max() und sum() wird ein ganzzahliger Dezimalwert für den Aggregatwert jedes Tupels angezeigt. Das Standardausgabeformat der Aggregatfunktionen lquantize() und quantize() zeigt die Ergebnisse in Form einer ASCII-Tabelle. Aggregat-Tupel werden so ausgegeben, als hätte man trace() auf jedes Tupelelement angewendet.