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