Handbuch zur dynamischen Ablaufverfolgung in Solaris

ID des Zielprozesses

Die Makrovariable $target dient zum Erstellen von Skripten, die sich gezielt auf einen Benutzerprozess von Interesse anwenden lassen, der entweder in der dtrace-Befehlszeile mit der Option -p ausgewählt oder mit der Option -c erzeugt wurde. In der Befehlszeile oder mit der Option -s angegebene D-Programme werden kompiliert, nachdem Prozesse erzeugt oder erfasst (grab) werden, und die Variable $target wird durch die ganzzahlige Prozess-ID des ersten dieser Prozesse ersetzt. Mit dem folgenden D-Skript ließe sich beispielsweise die Verteilung der von einem bestimmten Prozess ausgeführten Systemaufrufe ermitteln:

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

Um die Anzahl der vom Befehl date(1) ausgeführten Systemaufrufe zu ermitteln, speichern Sie das Skript in der Datei syscall.d und führen folgenden Befehl aus:


# 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