Solaris 动态跟踪指南

目标进程 ID

使用 $target 宏变量可创建脚本,这些脚本可应用于所关注的特定用户进程(在 dtrace 命令行上使用 -p 选项选择的进程或使用 -c 选项创建的进程)。在创建或抓取进程且 $target 变量扩展为第一个此类进程的整数进程 ID ,将编译在命令行上指定或使用 -s 选项指定的 D 程序。例如,以下 D 脚本可用于确定由特定主题进程执行的系统调用的分布:

syscall:::entry
/pid == $target/
{
	@[probefunc] = count();
}

要确定由 date(1) 命令执行的系统调用的数量,请将脚本保存在文件 syscall.d 中并执行以下命令:


# 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