Solaris 動的トレースガイド

ターゲットプロセス ID

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