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 |