NAME
dt
—
dynamic tracer
SYNOPSIS
pseudo-device dt
DESCRIPTION
System and application tracing can happen in the kernel. It has to be configured and enabled through the ioctl(2) interface exposed by the pseudo-device /dev/dt.
This device can only be opened when the kern.allowdt sysctl(2) variable is set.
IOCTL INTERFACE
The ioctl(2) command codes below are defined in
<dev/dt/dtvar.h>
.
DTIOCGPLIST
struct dtioc_probe *dtpr- Get available probe entries.
struct dtioc_probe { size_t dtpr_size; struct dtioc_probe_info *dtpr_probes; };
If dtpr_size is non-zero, as many probes as possible that can fit into this size will be copied into the supplied buffer. On exit, dtpr_size is always set to the total size required to hold all probe entries (i.e., it is set to
sizeof(struct dtioc_probe_info) * dt_nprobes
). DTIOCGSTATS
struct dtioc_stat *dtst- Get statistics for current recording.
struct dtioc_stat { uint64_t dtst_readevt; uint64_t dtst_dropevt; };
DTIOCRECORD
int on- Start or stop recording.
DTIOCPRBENABLE
struct dtioc_req *dtrq- Enable the given probe for recording.
struct dtioc_req { uint32_t dtrq_pbn; struct dt_filter dtrq_filter; uint32_t dtrq_rate; uint64_t dtrq_evtflags; };
FILES
- /dev/dt
- dynamic tracing device.
ERRORS
An open of /dev/dt will fail if:
- [
EPERM
] - the kern.allowdt sysctl(2) variable wasn't set.
- [
ENOMEM
] - not enough memory space was available.
SEE ALSO
HISTORY
The dt
dynamic tracing mechanism first
appeared in OpenBSD 6.7.