KASSERT(9) | Kernel Developer's Manual | KASSERT(9) |
KASSERT
, KASSERTMSG
,
KDASSERT
, KDASSERTMSG
—
KASSERT
(expression);
void
KASSERTMSG
(expression,
format,
...);
void
KDASSERT
(expression);
void
KDASSERTMSG
(expression,
format,
...);
KASSERT
() and
KASSERTMSG
() tests are included only in kernels
compiled with the DIAGNOSTIC
configuration option.
In a kernel that does not have this configuration option, the macros are
defined to be no-ops.KDASSERT
() and
KDASSERTMSG
() tests are included only in kernels
compiled with the DEBUG
configuration option. The
KDASSERT
() and KASSERT
()
macros are identical except for the controlling option
(DEBUG
vs DIAGNOSTIC
).
Basically, KASSERT
() should be used for
light-weight checks and KDASSERT
() should be used
for heavier ones.Callers should not rely on the side effects of expression because, depending on the kernel compile options mentioned above, expression might not be evaluated at all.
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. The KASSERTMSG
() and
KDASSERTMSG
() macros append to the
panic(9) format string the
message specified by format and its subsequent
arguments, similar to
printf(9) functions.
September 27, 2011 | NetBSD 9.2 |