次に、tick.d
プログラムの例を示します。
/* tick.d -- Perform an action at regular intervals */ BEGIN { i = 0; } profile:::tick-1sec { printf("i = %d\n",++i); } END { trace(i); }
この例では、プログラムはDプログラムの起動時に変数i
を宣言および初期化し、変数を増分して1秒ごとに値を出力し、プログラムの終了時に最後の値i
を表示します。
このプログラムを実行すると、Ctrl-C
と入力するまで、次のような出力が生成されます:
#dtrace -s tick.d
dtrace: script 'tick.d' matched 3 probes CPU ID FUNCTION:NAME 1 5315 :tick-1sec i = 1 1 5315 :tick-1sec i = 2 1 5315 :tick-1sec i = 3 1 5315 :tick-1sec i = 4 1 5315 :tick-1sec i = 5 1 5315 :tick-1sec i = 6^C
1 5315 :tick-1sec i = 7 0 2 :END 7
printf()
およびtrace()
からの出力以外の出力をすべて抑制するには、-q オプションを指定します:
#dtrace -q -s tick.d
i = 1 i = 2 i = 3 i = 4^C
i = 5 5