These machine independent assertion-checking macros cause a kernel
panic(9) if the given
expression evaluates to false.
KASSERT() tests are included only in kernels compiled with the
DIAGNOSTIC configuration option. In a kernel that does not have this configuration option, the
KASSERT() macro is defined to be a no-op.
KDASSERT() tests are included only in kernels compiled with the
DEBUG configuration option.
KDASSERT() and
KASSERT() are identical except for the controlling option (
DEBUG vs
DIAGNOSTIC).
The panic message will display the style of assertion (debugging vs. diagnostic), the expression that failed and the filename, and line number the failure happened on.