プローブを一意に識別する 4 つの要素を指定することにより、プローブを完全指定できます。プローブは次の形式で指定します。provider:module:function:name。プローブの要素の指定を省略すると、任意の要素を指定したことになります。たとえば、fbt::alloc:entry は、次の属性のプローブを指定しています。
fbt プロバイダから提供されたプローブでなければならない
任意のモジュールに含まれるプローブでかまわない
alloc 関数に含まれるプローブでなければならない
プローブ名は entry でなければならない
4 つの要素のうち、前半は省略可能です。::open:entry と指定した場合、open:entry と指定したのと同じことになります。どちらも、すべてのプロバイダおよびカーネルモジュールからの、関数名が open、プローブ名が entry であるプローブを指定したことになります。
# dtrace -l -n open:entry ID PROVIDER MODULE FUNCTION NAME 14 syscall open entry 7386 fbt genunix open entry |
sh(1) のマニュアルページの「ファイル名の生成」のセクションに記載されている構文と同様のパターンマッチング構文を使って、プローブを指定することもできます。この構文では、特殊文字 *、?、[、および ] を使用できます。プローブ記述 syscall::open*:entry は、open と open64 の両方のシステムコールを意味します。? は、名前に含まれる任意の 1 文字を表します。[ と ] 文字は、名前に含まれる特定の文字列を指定するために使用します。