xref: /illumos-gate/usr/src/man/man3proc/Pupanic.3proc (revision a28480febf31f0e61debac062a55216a98a05a92)
1.\"
2.\" This file and its contents are supplied under the terms of the
3.\" Common Development and Distribution License ("CDDL"), version 1.0.
4.\" You may only use this file in accordance with the terms of version
5.\" 1.0 of the CDDL.
6.\"
7.\" A full copy of the text of the CDDL should have accompanied this
8.\" source.  A copy of the CDDL is also available via the Internet at
9.\" http://www.illumos.org/license/CDDL.
10.\"
11.\"
12.\" Copyright 2020 Oxide Comptuer Company
13.\"
14.Dd October 31, 2020
15.Dt PUPANIC 3PROC
16.Os
17.Sh NAME
18.Nm Pupanic ,
19.Nm Pupanic_free
20.Nd get upanic information from a core file
21.Sh LIBRARY
22.Lb libproc
23.Sh SYNOPSIS
24.In libproc.h
25.Ft int
26.Fo Pupanic
27.Fa "struct ps_prochandle *P"
28.Fa "prupanic_t **prup"
29.Fc
30.Ft void
31.Fo Pupanic_free
32.Fa "prupanic_t *pru"
33.Fc
34.Sh DESCRIPTION
35The
36.Fn Pupanic
37function copies the contents of the
38.Dv NT_UPANIC
39elf note from the process handle
40.Fa P
41that corresponds to a core file into
42.Fa prup .
43.Pp
44The library will allocate the memory needed for a
45.Ft prupanic_t
46and it is the caller's responsibility to release it by calling the
47.Fn Pupanic_free
48function with the returned data when they are done with the data.
49.Pp
50The allocated data stored in
51.Fa prup
52has a lifetime independent of the underlying process handle
53.Fa P .
54That is, it is safe to continue using it whether the process handle is
55still valid or has been released with
56.Xr Pfree 3PROC .
57.Pp
58If the process handle doesn't correspond to a core file or this note is
59not present in the core file, then the
60.Fn Pupanic
61function will fail.
62.Sh RETURN VALUES
63Upon successful completion, the
64.Fn Pupanic
65function returns
66.Sy 0
67and stores the allocated
68.Ft prupanic_t
69structure in
70.Fa prup .
71Otherwise
72.Sy -1
73is returned
74and
75.Vt errno
76is set to indicate the error.
77.Sh ERRORS
78The
79.Fn Pupanic
80function will fail if:
81.Bl -tag -width Er
82.It Er ENODATA
83The process handle
84.Fa P
85does not correspond to a core file.
86.It Er ENOENT
87The core file does not have a
88.Dv NT_UPANIC
89elf note.
90.It Er EAGAIN, Er ENOMEM
91An underlying memory allocation failed.
92.El
93.Sh INTERFACE STABILITY
94.Sy Uncommitted
95.Sh MT-LEVEL
96See
97.Sy LOCKING
98in
99.Xr libproc 3LIB .
100.Sh SEE ALSO
101.Xr upanic 3C ,
102.Xr libproc 3LIB ,
103.Xr core 4
104