Breakpoint Interaction
FBT works by dynamically modifying kernel text. Because kernel breakpoints also work by modifying
kernel text, if a kernel breakpoint is placed at an entry or
return site before loading DTrace, FBT will refuse to provide a probe for the
function, even if the kernel breakpoint is subsequently removed. If the kernel breakpoint
is placed after loading DTrace, both the kernel breakpoint and the DTrace probe
will correspond to the same point in text. In this situation, the breakpoint
will trigger first, and then the probe will fire when the debugger resumes
the kernel. It is recommended that kernel breakpoints not be used concurrently with
DTrace. If breakpoints are required, use the DTrace breakpoint() action instead.