xref: /netbsd-src/share/man/man9/KASSERT.9 (revision 8b0f9554ff8762542c4defc4f70e1eb76fb508fa)
1.\"     $NetBSD: KASSERT.9,v 1.3 2006/12/10 23:03:03 pooka Exp $
2.\"
3.\" Copyright (c) 2006 Igor Sobrado
4.\" All rights reserved.
5.\"
6.\" This code is derived from software contributed to The NetBSD Foundation
7.\" by Matt THomas.
8.\"
9.\" Redistribution and use in source and binary forms, with or without
10.\" modification, are permitted provided that the following conditions
11.\" are met:
12.\" 1. Redistributions of source code must retain the above copyright
13.\"    notice, this list of conditions and the following disclaimer.
14.\" 2. Redistributions in binary form must reproduce the above copyright
15.\"    notice, this list of conditions and the following disclaimer in the
16.\"    documentation and/or other materials provided with the distribution.
17.\" 3. Neither the name of The NetBSD Foundation nor the names of its
18.\"    contributors may be used to endorse or promote products derived
19.\"    from this software without specific prior written permission.
20.\"
21.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
22.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
23.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
24.\" PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
25.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
26.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
27.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
28.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
29.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
30.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
31.\" POSSIBILITY OF SUCH DAMAGE.
32.\"
33.Dd December 10, 2006
34.Dt KASSERT 9
35.Os
36.Sh NAME
37.Nm KASSERT ,
38.Nm KDASSERT
39.Nd kernel expression verification macros
40.Sh SYNOPSIS
41.Ft void
42.Fn KASSERT expression
43.Ft void
44.Fn KDASSERT expression
45.Sh DESCRIPTION
46These machine independent assertion-checking macros cause a kernel
47.Xr panic 9
48if the given
49.Ar expression
50evaluates to false.
51.Pp
52.Fn KASSERT
53tests are included only in kernels compiled with the
54.Dv DIAGNOSTIC
55configuration option.
56In a kernel that does not have this configuration option, the
57.Fn KASSERT
58macro is defined to be a no-op.
59.Pp
60.Fn KDASSERT
61tests are included in only kernels that has been compiled with the
62.Dv DEBUG
63configuration option.
64.Fn KDASSERT
65and
66.Fn KASSERT
67are identical except for the controlling option
68.Pf ( Dv DEBUG
69vs
70.Dv DIAGNOSTIC ) .
71.Pp
72The panic message will display the style of assertion (debugging
73vs. diagnostic), the expression that failed and the filename, and line
74number the failure happened on.
75.Sh SEE ALSO
76.Xr config 1 ,
77.Xr panic 9 ,
78.Xr printf 9
79.Sh AUTHORS
80These macros were written by
81.An Chris G. Demetriou
82.Aq cgd@netbsd.org .
83