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