2.4.1 例: Daterun.dの使用

次の例は、システム上でdate コマンドが実行されると、write()システム・コールに指定されたファイル記述子、出力文字列および文字列長を表示する、実行可能なDTraceスクリプトdaterun.dを示します。

#!/usr/sbin/dtrace -qs

/* daterun.d -- Display arguments to write() when date runs */

syscall::write:entry
/execname == "date"/
{
  printf("%s(%d, %s, %d)\n", probefunc, arg0, copyinstr(arg1), arg2);
} 

この例では、述語は/execname == "date"/であり、プローブsyscall::write:entryがトリガーされた場合に、DTraceは実行可能ファイルの名前がdateの場合にのみ、関連付けられているアクションを実行することを指定します。

スクリプトのモードを変更して実行可能にします。

# chmod +x daterun.d

あるウィンドウからスクリプトを実行する場合、別のウィンドウにdate コマンドを入力すると、次のような出力が最初のウィンドウに表示されます:

# ./daterun.d
write(1, Thu Oct 31 11:14:43 GMT 2013
, 29)