Updated: 2022/Sep/29

Please read Privacy Policy. It's for your privacy.


PANIC(9)                   Kernel Developer's Manual                  PANIC(9)

NAME
     panic - bring down system on fatal error

SYNOPSIS
     #include <sys/types.h>
     #include <sys/systm.h>

     void
     vpanic(const char *fmt, va_list ap);

     void
     panic(const char *fmt, ...);

DESCRIPTION
     The panic() and vpanic() functions terminate the NetBSD system.  The
     message fmt is a printf(3) style format string which is printed to the
     console and saved in the variable 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.

     If a kernel debugger is installed, control is passed to it after the
     message is printed.  If the kernel debugger is ddb(4), control may be
     passed to it, depending on the value of ddb.onpanic.  See options(4) for
     more details on setting ddb.onpanic.  If control is not passed through to
     ddb(4), a ddb(4)-specific function is used to print the kernel stack
     trace, and then control returns to panic().

     If control remains in panic(), an attempt is made to save an image of
     system memory on the configured dump device.

     If during the process of handling the panic, panic() is called again
     (from the filesystem synchronization routines, for example), the system
     is rebooted immediately without synchronizing any filesystems.

     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.

     In general developers should try to reduce the number of panic() calls in
     the kernel to improve stability.

RETURN VALUES
     The panic() function never returns.

SEE ALSO
     printf(3), sysctl(3), ddb(4), options(4), savecore(8), swapctl(8),
     sysctl(8), printf(9)

NetBSD 10.99                    October 4, 2019                   NetBSD 10.99