このドキュメントで説明するソフトウェアは、Extended SupportまたはSustaining Supportのいずれかにあります。 詳細は、https://www.oracle.com/us/support/library/enterprise-linux-support-policies-069172.pdfを参照してください。
Oracleでは、このドキュメントに記載されているソフトウェアをできるだけ早くアップグレードすることをお薦めします。
Dには、整数および浮動小数点の定数の基本データ型があります。 Dプログラムでは、整数に対してのみ算術を実行できます。 Dでは、浮動小数点の演算はサポートされません。 Dには、ANSI-Cの宣言および型との互換性のある浮動小数点型があります。 浮動小数点のデータ・オブジェクトをトレースし、printf()
関数を使用してそれらを出力用にフォーマットできます。 現在の実装では、DTraceでサポートされるのは、Dプログラムを記述するための64ビットのデータ・モデルのみです。
宣言を使用して、Dの変数および外部のC記号を導入するか、Dで使用するために新しい型を定義できます。 次のサンプル・プログラムtick.d
では、Dプログラムの開始時に変数i
を宣言および初期化し、その初期値を表示し、変数を増分して1秒に1回その値を出力し、プログラムの終了時に最後の値を表示します。
BEGIN { i = 0; trace(i); } profile:::tick-1sec { printf("i=%d\n",++i); } END { trace(i); }
プログラムは、実行されると、[Ctrl]+[C]
が押されるまで次のような出力を生成します。
#dtrace -s tick.d
dtrace: script 'tick.d' matched 3 probes CPU ID FUNCTION:NAME 1 1 :BEGIN 0 1 618 :tick-1sec i=1 1 618 :tick-1sec i=2 1 618 :tick-1sec i=3 1 618 :tick-1sec i=4 1 618 :tick-1sec i=5^C
0 2 :END 5
プローブが起動されるたびに、dtraceによって、IDで示されるプロセスが実行されているCPUコアの番号と、関数およびプローブの名前が表示されます。 BEGIN
およびEND
は、dtraceプログラムの開始時および終了時に起動されるDTraceプローブです。
printa()
、printf()
およびtrace()
からの出力以外のすべての出力を抑制するには、プログラムに#pragma D option quiet
を指定するか、dtraceの-qオプションを指定します。
#dtrace -q -s tick.d
0i=1 i=2 i=3 i=4 i=5^C
5