TRACING(7) FreeBSD Miscellaneous Information Manual TRACING(7)
NAME
tracing - introduction to FreeBSD tracing and performance monitoring
DESCRIPTION
FreeBSD features a large variety of tracing and performance monitoring
facilities. Use them to measure performance and troubleshoot kernel and
userland problems both during development(7) and potentially on
production systems. The facilities differ in scope, ease of use,
overhead, design, and limitations.
DTrace
dtrace(1) is the most versatile tracing framework available on FreeBSD
and is capable of tracing throughout the FreeBSD software stack from the
kernel to the applications running in userland. Refer to dtrace(1) and
SDT(9) for more details.
dwatch(1) is a user-friendly wrapper for DTrace. It simplifies common
DTrace usage patterns and requires less expert knowledge to operate.
Userland Tracing
truss(1) traces system calls. It uses sysdecode(3) to pretty-print
system call arguments and ptrace(2) to trace processes.
ktrace(1) is useful for debugging user programs. It enables kernel trace
logging for specified processes. Like truss(1), it mainly traces system
calls, but instead of using ptrace(2), it asynchronously logs entries to
a trace file configured with ktrace(2) (typically ktrace.out), and it can
log other types of kernel events, such as page faults and name lookups
(refer to -t in ktrace(1)). Also, programs can log to a ktrace(1) stream
using the utrace(2) system call.
Kernel Tracing
ktr(4) is a facility for logging strings in the kernel. It comes in
handy for some niche purposes during kernel development. It lets kernel
programmers log events to a global ring buffer, which can later be dumped
using ktrdump(8).
Hardware-Accelerated Tracing
hwt(4) is a kernel trace framework providing infrastructure for hardware-
assisted tracing.
Hardware Counters
pmcstat(8), and its kernel counterpart, hwpmc(4), is the FreeBSD facility
for conducting performance measurements with hardware counters.
Boot-Time And Shutdown Tracing
boottrace(4) is a facility for tracing events at boot and shutdown. Its
target audience are system administrators.
tslog(4) is a developer-oriented tool for tracing boot-time events.
HISTORY
The tracing manual page was written by Mateusz Piotrowski
<0mp@FreeBSD.org>. It first appeared in FreeBSD 15.0.
FreeBSD 15.1-STABLE-HBSD July 12, 2025 TRACING(7)