/* hello.d -- A simple D program that uses the BEGIN probe */ BEGIN { /* This is a C-style comment */ trace("hello, world"); exit(0); }
Dプログラムは、有効にする1つ以上のプローブについて記述する一連の節およびプローブの起動時に実行するオプションの一連のアクションで構成されています。 これらのアクションは、中カッコ{}
で囲まれた一連の文としてプローブ名の後にリストされます。 各文は、セミコロン(;
)で終わります。
この例では、関数trace
が、指定された引数、文字列hello、world、BEGIN
プローブが起動したとき、それを出力するようDTraceに指示しています。 関数exit()
は、トレースを中止してdtraceコマンドを終了するようにDTraceに指示します。
BEGIN
プローブのフルネームはdtrace:::BEGIN
です。dtrace
には3つのプローブdtrace:::BEGIN
、dtrace:::END
およびdtrace:::ERROR
があります。 これらのプローブ名はdtrace
プロバイダに対して一意であるため、これらの名前はBEGIN
、END
およびERROR
に短縮できます。
プログラムを保存した後は、Dプログラムを含むファイルの名前を指定する-s オプションを指定したdtrace コマンドを使用して、プログラムを実行できます:
# dtrace -s hello.d
dtrace: script 'hello.d' matched 1 probe
CPU ID FUNCTION:NAME
0 1 :BEGIN hello, world
DTraceによって、スクリプトが解釈されて実行されます。 文字列"hello,world"
に加えて、DTraceのデフォルトの動作では、プローブの起動時にスクリプトが実行されたCPUに関する情報、プローブのID、プローブを含む関数の名前、およびプローブ自体の名前が表示されます。 BEGIN
,の場合、DTraceによってこのプローブが提供されるため、関数名は空白として表示されます。
プローブの情報は多くの方法で抑制できます。たとえば、-qオプションを指定します。
# dtrace -q -s hello.d
hello, world