December 10, 2006 KASSERT 9

### NAME

KASSERT, KDASSERT - kernel expression verification macros

### SYNOPSIS

```void` KASSERT(```expression`)
```void` KDASSERT(```expression`)

### DESCRIPTION

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.

### SEE ALSO

config(1), panic(9), printf(9)

### AUTHORS

These macros were written by Chris G. Demetriou
<cgd@netbsd.org>.