/lsdtrace

list available dtrace probes with simple filtering

Primary LanguageC

lsdtrace - list probes available on system


lsdtrace lists dtrace probes availabe on the system via the dtrace api.

Basic filtering of probes is provided via parameters which use fnmatch(3) to match probes by providere, module, function, name, or any combination of the aforementioned.

Building

Nothing fancy.

# make

It's only been tested on OSX, I expect the code would compile and work on Solaris but can't confirm - please let me know if you try and it doesn't.

Example usage

List all probes:

yo-moms-a-tracer# sudo ./lsdtrace

dtrace          BEGIN
dtrace          END
dtrace          ERROR
lockstat    mach_kernel lck_mtx_lock    adaptive-acquire
lockstat    mach_kernel lck_mtx_lock    adaptive-spin
lockstat    mach_kernel lck_mtx_lock    adaptive-block
lockstat    mach_kernel lck_mtx_try_lock    adaptive-acquire
lockstat    mach_kernel lck_mtx_try_spin_lock   adaptive-acquire
lockstat    mach_kernel lck_mtx_unlock  adaptive-release
lockstat    mach_kernel lck_mtx_ext_lock    adaptive-acquire

List launchd probes

yo-moms-a-tracer# sudo ./lsdtrace --provider=launchd*

launchd1    launchd _launch_domain_demux    domain-initpid
launchd1    launchd _launch_domain_demux    domain-uncork-begin
launchd1    launchd _launch_domain_read_finished    domain-uncork-end
launchd1    launchd _launch_domain_demux    gui-login-begin
launchd1    launchd _launch_domain_deactivate   gui-login-end
launchd1    launchd _launch_domain_deactivate   gui-login-middle
launchd1    launchd _launch_service_demux   service-init
launchd1    launchd _launch_service_demux   service-init-reply
launchd1    launchd _launch_service_delegate_spawn  service-spawn

List modules:

yo-moms-a-tracer# sudo ./lsdtrace |cut -f2 |sort -u

AE
AppKit
CoreAudio
CoreData
CoreFoundation
CoreGraphics
...