dtrace コマンド行の p オプションで選択された、または -c オプションで作成された特定のユーザープロセスに適用できるスクリプトを作成したい場合は、-$target マクロ変数を使用します。コマンド行に指定された D プログラムや -s オプションで指定された D プログラムのコンパイルは、プロセスが作成されるか取り込まれるかして、$target 変数がこれらのプロセスのうち最初のプロセスのプロセス ID を表す整数に展開されたあと行われます。たとえば、次の D スクリプトでは、特定の従属プロセスによって実行されるシステムコールの内訳がわかります。
syscall:::entry /pid == $target/ { @[probefunc] = count(); }
このスクリプトを syscall.d という名前のファイルに保存し、次のコマンドを実行すると、date(1) コマンドによって実行されるシステムコール数を特定できます。
# dtrace -s syscall.d -c date dtrace: script 'syscall.d' matched 227 probes Fri Jul 30 13:46:06 PDT 2004 dtrace: pid 109058 has exited gtime 1 getpid 1 getrlimit 1 rexit 1 ioctl 1 resolvepath 1 read 1 stat 1 write 1 munmap 1 close 2 fstat64 2 setcontext 2 mmap 2 open 2 brk 4 |