You can list all DTrace probes by passing the -l option to the dtrace command:
# dtrace -l ID PROVIDER MODULE FUNCTION NAME 1 dtrace BEGIN 2 dtrace END 3 dtrace ERROR 4 syscall nosys entry 5 syscall nosys return 6 syscall rexit entry 7 syscall rexit return 8 syscall forkall entry 9 syscall forkall return 10 syscall read entry 11 syscall read return ...
To count all the probes that are available on your system, you can type the following command:
# dtrace -l | wc -l
The number of probes reported will vary depending on your operating platform and the software you have installed. Some probes do not list an entry under the MODULE or FUNCTION columns, such as the BEGIN and END probes in the previous example. Probes with blank entries in these fields do not correspond to a specifically instrumented program function or location. These probes refer to more abstract concepts, such as the end of a tracing request. A probe that has a module and function as part of its name is called an anchored probe. A probe that is not associated with a module and function is called an unanchored probe.
You can use additional options to list specific probes, as seen in the following examples.
You can list probes that are associated with a specific function by passing that function name to DTrace with the -f option.
# dtrace -l -f cv_wait ID PROVIDER MODULE FUNCTION NAME 12921 fbt genunix cv_wait entry 12922 fbt genunix cv_wait return
You can list probes that are associated with a specific module by passing that module name to DTrace with the -m option.
# dtrace -l -m sd ID PROVIDER MODULE FUNCTION NAME 17147 fbt sd sdopen entry 17148 fbt sd sdopen return 17149 fbt sd sdclose entry 17150 fbt sd sdclose return 17151 fbt sd sdstrategy entry 17152 fbt sd sdstrategy return ...
You can list probes that have a specific name by passing that name to DTrace with the -n option.
# dtrace -l -n BEGIN ID PROVIDER MODULE FUNCTION NAME 1 dtrace BEGIN
You can list probes that are originate from a specific provider by passing the provider name to DTrace with the -P option.
# dtrace -l -P lockstat ID PROVIDER MODULE FUNCTION NAME 469 lockstat genunix mutex_enter adaptive-acquire 470 lockstat genunix mutex_enter adaptive-block 471 lockstat genunix mutex_enter adaptive-spin 472 lockstat genunix mutex_exit adaptive-release 473 lockstat genunix mutex_destroy adaptive-release 474 lockstat genunix mutex_tryenter adaptive-acquire ...
A specific function or specific module can be supported by multiple providers, as the following example shows.
# dtrace -l -f read ID PROVIDER MODULE FUNCTION NAME 10 syscall read entry 11 syscall read return 4036 sysinfo genunix read readch 4040 sysinfo genunix read sysread 7885 fbt genunix read entry 7886 fbt genunix read return
As the previous examples show, the output for a listing of probes displays the following information:
The probe's uniquely assigned integer probe ID
The probe ID is only unique within a given release or patch level of the Solaris operating system.
The provider name
The module name, if applicable
The function name, if applicable
The probe name