diff options
Diffstat (limited to 'static/netbsd/man9/panic.9')
| -rw-r--r-- | static/netbsd/man9/panic.9 | 114 |
1 files changed, 114 insertions, 0 deletions
diff --git a/static/netbsd/man9/panic.9 b/static/netbsd/man9/panic.9 new file mode 100644 index 00000000..9a06acab --- /dev/null +++ b/static/netbsd/man9/panic.9 @@ -0,0 +1,114 @@ +.\" $NetBSD: panic.9,v 1.23 2019/10/04 21:55:00 gutteridge Exp $ +.\" +.\" Copyright (c) 1996 The NetBSD Foundation, Inc. +.\" All rights reserved. +.\" +.\" This code is derived from software contributed to The NetBSD Foundation +.\" Michael Graff. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS +.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS +.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +.\" POSSIBILITY OF SUCH DAMAGE. +.\" +.Dd October 4, 2019 +.Dt PANIC 9 +.Os +.Sh NAME +.Nm panic +.Nd bring down system on fatal error +.Sh SYNOPSIS +.In sys/types.h +.In sys/systm.h +.Ft void +.Fn vpanic "const char *fmt" "va_list ap" +.Ft void +.Fn panic "const char *fmt" "..." +.Sh DESCRIPTION +The +.Fn panic +and +.Fn vpanic +functions terminate the +.Nx +system. +The message +.Fa fmt +is a +.Xr printf 3 +style format string which is printed to the console and saved in the +variable +.Va panicstr +for later retrieval via core dump inspection. +A newline character is added at the end automatically, and is thus +not needed in the format string. +.Pp +If a kernel debugger is installed, control is passed to it after the +message is printed. +If the kernel debugger is +.Xr ddb 4 , +control may be passed to it, depending on the value of +.Em ddb.onpanic . +See +.Xr options 4 +for more details on setting +.Em ddb.onpanic . +If control is not passed through to +.Xr ddb 4 , +a +.Xr ddb 4 Ns -specific +function is used to print the kernel stack trace, and then control returns +to +.Fn panic . +.Pp +If control remains in +.Fn panic , +an attempt is made to save an image of system memory on the +configured dump device. +.Pp +If during the process of handling the panic, +.Fn panic +is called again +.Pq from the filesystem synchronization routines, for example , +the system is rebooted immediately without synchronizing any filesystems. +.Pp +.Fn panic +is meant to be used in situations where something unexpected has happened +and it is difficult to recover the system to a stable state, or in +situations where proceeding might make things worse, leading to data +corruption and/or loss. +It is not meant to be used in scenarios where the system could easily +ignore and/or isolate the condition/subsystem and proceed. +.Pp +In general developers should try to reduce the number of +.Fn panic +calls in the kernel to improve stability. +.Sh RETURN VALUES +The +.Fn panic +function never returns. +.Sh SEE ALSO +.Xr printf 3 , +.Xr sysctl 3 , +.Xr ddb 4 , +.Xr options 4 , +.Xr savecore 8 , +.Xr swapctl 8 , +.Xr sysctl 8 , +.Xr printf 9 |
