Chapter 20
fbt Provider
This chapter describes the Function Boundary Tracing (FBT) provider, which provides probes associated
with the entry to and return from most functions in the Solaris kernel.
The function is the fundamental unit of program text. In a well-designed system,
each function performs a discrete and well-defined operation on a specified object or
series of like objects. Therefore, even on the smallest Solaris systems, FBT will provide
on the order of 20,000 probes.
Similar to other DTrace providers, FBT has no probe effect when it is
not explicitly enabled. When enabled, FBT only induces a probe effect in probed
functions. While the FBT implementation is highly specific to the instruction set architecture,
FBT has been implemented on both SPARC and x86 platforms. For each instruction
set, there are a small number of functions that do not call other
functions and are highly optimized by the compiler (so-called leaf functions) that cannot be instrumented
by FBT. Probes for these functions are not present in DTrace.
Effective use of FBT probes requires knowledge of the operating system implementation. Therefore,
it is recommended that you use FBT only when developing kernel software or
when other providers are not sufficient. Other DTrace providers, including syscall, sched, proc,
and io, can be used to answer most system analysis questions without requiring
operating system implementation knowledge.