| 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.4 |