xref: /illumos-gate/usr/src/man/man2/upanic.2 (revision bbf215553c7233fbab8a0afdf1fac74c44781867)
1350ffdd5SRobert Mustacchi.\"
2350ffdd5SRobert Mustacchi.\" This file and its contents are supplied under the terms of the
3350ffdd5SRobert Mustacchi.\" Common Development and Distribution License ("CDDL"), version 1.0.
4350ffdd5SRobert Mustacchi.\" You may only use this file in accordance with the terms of version
5350ffdd5SRobert Mustacchi.\" 1.0 of the CDDL.
6350ffdd5SRobert Mustacchi.\"
7350ffdd5SRobert Mustacchi.\" A full copy of the text of the CDDL should have accompanied this
8350ffdd5SRobert Mustacchi.\" source.  A copy of the CDDL is also available via the Internet at
9350ffdd5SRobert Mustacchi.\" http://www.illumos.org/license/CDDL.
10350ffdd5SRobert Mustacchi.\"
11350ffdd5SRobert Mustacchi.\"
12350ffdd5SRobert Mustacchi.\" Copyright 2020 Oxide Computer Company
13350ffdd5SRobert Mustacchi.\"
14350ffdd5SRobert Mustacchi.Dd October 31, 2020
15350ffdd5SRobert Mustacchi.Dt UPANIC 2
16350ffdd5SRobert Mustacchi.Os
17350ffdd5SRobert Mustacchi.Sh NAME
18350ffdd5SRobert Mustacchi.Nm upanic
19350ffdd5SRobert Mustacchi.Nd user process panic
20350ffdd5SRobert Mustacchi.Sh SYNOPSIS
21350ffdd5SRobert Mustacchi.In upanic.h
22350ffdd5SRobert Mustacchi.Ft void noreturn
23350ffdd5SRobert Mustacchi.Fo upanic
24350ffdd5SRobert Mustacchi.Fa "const char *msg"
25350ffdd5SRobert Mustacchi.Fa "size_t len"
26350ffdd5SRobert Mustacchi.Fc
27350ffdd5SRobert Mustacchi.Sh DESCRIPTION
28350ffdd5SRobert MustacchiThe
29350ffdd5SRobert Mustacchi.Fn upanic
30350ffdd5SRobert Mustacchisystem call terminates the calling process and generates a core file in
31350ffdd5SRobert Mustacchithe process, subject to the current core file settings as described in
32*bbf21555SRichard Lowe.Xr core 5
33350ffdd5SRobert Mustacchiand controlled by
34*bbf21555SRichard Lowe.Xr coreadm 8 .
35350ffdd5SRobert Mustacchi.Pp
36350ffdd5SRobert MustacchiUnlike
37350ffdd5SRobert Mustacchi.Xr abort 3C ,
38350ffdd5SRobert Mustacchisignals are not generated, which avoids two related challenges:
39350ffdd5SRobert Mustacchi.Bl -enum
40350ffdd5SRobert Mustacchi.It
41350ffdd5SRobert MustacchiA signal handler attempting to catch a
42350ffdd5SRobert Mustacchi.Dv SIGABRT .
43350ffdd5SRobert Mustacchi.It
44350ffdd5SRobert MustacchiNeeding to make multiple system calls and potentially unmasking the
45350ffdd5SRobert Mustacchisignal.
46350ffdd5SRobert Mustacchi.El
47350ffdd5SRobert Mustacchi.Pp
48350ffdd5SRobert MustacchiThe
49350ffdd5SRobert Mustacchi.Fn upanic
50350ffdd5SRobert Mustacchisystem call allows an optional message to be transmitted that will be
51350ffdd5SRobert Mustacchiput in a
52350ffdd5SRobert Mustacchi.Dv NT_UPANIC
53350ffdd5SRobert Mustacchielf note in the resulting core file.
54350ffdd5SRobert MustacchiIf a message is not desired, then one should pass
55350ffdd5SRobert Mustacchi.Dv NULL
56350ffdd5SRobert Mustacchifor
57350ffdd5SRobert Mustacchi.Fa msg .
58350ffdd5SRobert MustacchiIn general, it is expected that
59350ffdd5SRobert Mustacchi.Fa msg
60350ffdd5SRobert Mustacchiis a character string with a human-readable message; however, it may
61350ffdd5SRobert Mustacchiinclude binary data.
62350ffdd5SRobert MustacchiThe system will copy
63350ffdd5SRobert Mustacchi.Fa len
64350ffdd5SRobert Mustacchibytes regardless of whether the string has a NUL character to terminate
65350ffdd5SRobert Mustacchiit or not.
66350ffdd5SRobert MustacchiIf
67350ffdd5SRobert Mustacchi.Fa msg
68350ffdd5SRobert Mustacchipoints to an invalid value or
69350ffdd5SRobert Mustacchi.Fa len
70350ffdd5SRobert Mustacchiis a size that is larger than the system's internal maximum size, then
71350ffdd5SRobert Mustacchithe process will still terminate; however, this will be noted in the
72350ffdd5SRobert Mustacchi.Dv NT_UPANIC
73350ffdd5SRobert Mustacchielf note.
74350ffdd5SRobert Mustacchi.Pp
75350ffdd5SRobert MustacchiThe
76350ffdd5SRobert Mustacchi.Fn upanic
77350ffdd5SRobert Mustacchisystem call is illumos-specific and not portable to other systems.
78350ffdd5SRobert MustacchiFor portable applications, instead use
79350ffdd5SRobert Mustacchi.Xr abort 3C .
80350ffdd5SRobert Mustacchi.Sh RETURN VALUES
81350ffdd5SRobert MustacchiThe
82350ffdd5SRobert Mustacchi.Fn upanic
83350ffdd5SRobert Mustacchisystem call does not return.
84350ffdd5SRobert MustacchiIt always terminates the process.
85350ffdd5SRobert Mustacchi.Sh INTERFACE STABILITY
86350ffdd5SRobert Mustacchi.Sy Committed
87350ffdd5SRobert Mustacchi.Sh MT-LEVEL
88350ffdd5SRobert Mustacchi.Sy Async-Signal-Safe
89350ffdd5SRobert Mustacchi.Sh SEE ALSO
90350ffdd5SRobert Mustacchi.Xr elfdump 1 ,
91350ffdd5SRobert Mustacchi.Xr mdb 1 ,
92350ffdd5SRobert Mustacchi.Xr upanic.h 3HEAD ,
93*bbf21555SRichard Lowe.Xr core 5 ,
94*bbf21555SRichard Lowe.Xr coreadm 8
95