xref: /illumos-gate/usr/src/man/man3proc/Pgrab_core.3proc (revision bbf215553c7233fbab8a0afdf1fac74c44781867)
143051d27SRobert Mustacchi.\"
243051d27SRobert Mustacchi.\" This file and its contents are supplied under the terms of the
343051d27SRobert Mustacchi.\" Common Development and Distribution License ("CDDL"), version 1.0.
443051d27SRobert Mustacchi.\" You may only use this file in accordance with the terms of version
543051d27SRobert Mustacchi.\" 1.0 of the CDDL.
643051d27SRobert Mustacchi.\"
743051d27SRobert Mustacchi.\" A full copy of the text of the CDDL should have accompanied this
843051d27SRobert Mustacchi.\" source.  A copy of the CDDL is also available via the Internet at
943051d27SRobert Mustacchi.\" http://www.illumos.org/license/CDDL.
1043051d27SRobert Mustacchi.\"
1143051d27SRobert Mustacchi.\"
1243051d27SRobert Mustacchi.\" Copyright 2015 Joyent, Inc.
1343051d27SRobert Mustacchi.\"
1443051d27SRobert Mustacchi.Dd May 11, 2016
1543051d27SRobert Mustacchi.Dt PGRAB_CORE 3PROC
1643051d27SRobert Mustacchi.Os
1743051d27SRobert Mustacchi.Sh NAME
1843051d27SRobert Mustacchi.Nm Pgrab_core ,
1943051d27SRobert Mustacchi.Nm Pfgrab_core
2043051d27SRobert Mustacchi.Nd grab a core file
21ab618543SJohn Levon.Sh LIBRARY
2243051d27SRobert Mustacchi.Lb libproc
23ab618543SJohn Levon.Sh SYNOPSIS
2443051d27SRobert Mustacchi.In libproc.h
2543051d27SRobert Mustacchi.Ft "struct ps_prochandle *"
2643051d27SRobert Mustacchi.Fo Pgrab_core
2743051d27SRobert Mustacchi.Fa "const char *core"
2843051d27SRobert Mustacchi.Fa "const char *aout"
2943051d27SRobert Mustacchi.Fa "int gflag"
3043051d27SRobert Mustacchi.Fa "int *perr"
3143051d27SRobert Mustacchi.Fc
3243051d27SRobert Mustacchi.Ft "struct ps_prochandle *"
3343051d27SRobert Mustacchi.Fo Pfgrab_core
3443051d27SRobert Mustacchi.Fa "int core_fd"
3543051d27SRobert Mustacchi.Fa "const char *aout"
3643051d27SRobert Mustacchi.Fa "int *perr"
3743051d27SRobert Mustacchi.Fc
3843051d27SRobert Mustacchi.Sh DESCRIPTION
3943051d27SRobert MustacchiThe
4043051d27SRobert Mustacchi.Fn Pgrab_core
4143051d27SRobert Mustacchiand
4243051d27SRobert Mustacchi.Fn Pfgrab_core
4372d3dbb9SYuri Pankovfunctions open a core file for introspection.
4472d3dbb9SYuri PankovUnlike live processes, core files cannot have their state modified;
4572d3dbb9SYuri Pankovhowever, all of the functions that iterate or query state will work.
4672d3dbb9SYuri PankovThese functions work on all illumos core files and the core files of some other
4772d3dbb9SYuri Pankovoperating systems.
4872d3dbb9SYuri PankovSee both
49*bbf21555SRichard Lowe.Xr core 5
5043051d27SRobert Mustacchiand the
5143051d27SRobert Mustacchi.Em Core Files
5243051d27SRobert Mustacchisection of
5343051d27SRobert Mustacchi.Xr libproc 3LIB
5443051d27SRobert Mustacchifor more information.
5543051d27SRobert Mustacchi.Pp
5643051d27SRobert MustacchiThe
5743051d27SRobert Mustacchi.Fn Pgrab_core
5843051d27SRobert Mustacchifunction attempts to open the core file specified by
5943051d27SRobert Mustacchi.Fa core .
6043051d27SRobert MustacchiThe system attempts to determine the path of the original executable.
6143051d27SRobert MustacchiThe argument
6243051d27SRobert Mustacchi.Fa aout
6372d3dbb9SYuri Pankovmay either be the path to that file, a path to a directory to search, or the
6443051d27SRobert Mustacchi.Dv NULL
6572d3dbb9SYuri Pankovpointer, if neither is known.
6672d3dbb9SYuri PankovThe system will search for it and will supplement information in the core file
6772d3dbb9SYuri Pankovwith that.
6843051d27SRobert Mustacchi.Pp
6943051d27SRobert MustacchiThe
7043051d27SRobert Mustacchi.Fa gflag
7143051d27SRobert Mustacchiargument to the
7243051d27SRobert Mustacchi.Fn Pgrab_core
7372d3dbb9SYuri Pankovfunction controls how the file is opened.
7472d3dbb9SYuri PankovIf the
7543051d27SRobert Mustacchi.Dv PGRAB_RDONLY
7643051d27SRobert Mustacchiflag is specified, then the core file will be opened with the
7743051d27SRobert Mustacchi.Xr open 2
7843051d27SRobert Mustacchiflag
7943051d27SRobert Mustacchi.Dv O_RDONLY .
8043051d27SRobert MustacchiOtherwise, it will be opened
8143051d27SRobert Mustacchi.Dv O_RDWR .
8243051d27SRobert Mustacchi.Pp
8343051d27SRobert MustacchiThe
8443051d27SRobert Mustacchi.Fa perr
8543051d27SRobert Mustacchiargument must be a
8643051d27SRobert Mustacchi.Pf non- Dv NULL
8743051d27SRobert Mustacchipointer which will store a more detailed error in the event that the
8843051d27SRobert Mustacchi.Fn Pgrab_core
8972d3dbb9SYuri Pankovfunction fails.
9072d3dbb9SYuri PankovA human-readable form of the error can be obtained through the routine
9143051d27SRobert Mustacchi.Xr Pgrab_error 3PROC .
9243051d27SRobert Mustacchi.Pp
9343051d27SRobert MustacchiThe
9443051d27SRobert Mustacchi.Fn Pfgrab_core
9543051d27SRobert Mustacchiis similar to the
9643051d27SRobert Mustacchi.Fn Pgrab_core
9772d3dbb9SYuri Pankovfunction.
9872d3dbb9SYuri PankovExcept, instead of operating on a path, it opens a handle to the core file
9972d3dbb9SYuri Pankovreferenced by
10043051d27SRobert Mustacchi.Fa core_fd .
10143051d27SRobert MustacchiThe
10243051d27SRobert Mustacchi.Fa aout
10343051d27SRobert Mustacchiand
10443051d27SRobert Mustacchi.Fa perr
10543051d27SRobert Mustacchiarguments are identical to those in the
10643051d27SRobert Mustacchi.Fn Pgrab_core
10743051d27SRobert Mustacchifunction.
10843051d27SRobert Mustacchi.Pp
10943051d27SRobert MustacchiThe handle returned, from either function, is valid until it is closed
11043051d27SRobert Mustacchiwith
11143051d27SRobert Mustacchi.Xr Prelease 3PROC
11243051d27SRobert Mustacchior
11343051d27SRobert Mustacchi.Xr Pfree 3PROC .
11443051d27SRobert Mustacchi.Sh RETURN VALUES
11543051d27SRobert MustacchiUpon successful completion, the
11643051d27SRobert Mustacchi.Fn Pgrab_core
11743051d27SRobert Mustacchiand
11843051d27SRobert Mustacchi.Fn Pfgrab_core
11943051d27SRobert Mustacchifunctions return a
12043051d27SRobert Mustacchi.Sy libproc
12172d3dbb9SYuri Pankovhandle to the core file.
12272d3dbb9SYuri PankovOtherwise,
12343051d27SRobert Mustacchi.Dv NULL
12443051d27SRobert Mustacchiis returned and
12543051d27SRobert Mustacchi.Fa perr
12643051d27SRobert Mustacchiis filled in with a more detailed error message.
12743051d27SRobert Mustacchi.Sh ERRORS
12843051d27SRobert MustacchiThe
12943051d27SRobert Mustacchi.Fn Pgrab_core
13043051d27SRobert Mustacchifunction will fail if:
13143051d27SRobert Mustacchi.Bl -tag -width Er
13243051d27SRobert Mustacchi.It Er G_NOCORE
13343051d27SRobert MustacchiThe file
13443051d27SRobert Mustacchi.Fa core
13543051d27SRobert Mustacchidoes not exist.
13643051d27SRobert Mustacchi.It Er G_STRANGE
13743051d27SRobert MustacchiAn unexpected system error occurred while trying to open
13843051d27SRobert Mustacchi.Fa core .
13943051d27SRobert MustacchiThe value of
14043051d27SRobert Mustacchi.Sy errno
14143051d27SRobert Mustacchiindicates the system failure.
14243051d27SRobert Mustacchi.El
14343051d27SRobert Mustacchi.Pp
14443051d27SRobert MustacchiThe
14543051d27SRobert Mustacchi.Fn Pgrab_core
14643051d27SRobert Mustacchiand
14743051d27SRobert Mustacchi.Fn Pfgrab_core
14843051d27SRobert Mustacchifunctions will fail if:
14943051d27SRobert Mustacchi.Bl -tag -width Er
15043051d27SRobert Mustacchi.It Dv G_ELF
15143051d27SRobert MustacchiAn unexpected
15243051d27SRobert Mustacchi.Xr libelf 3LIB
15343051d27SRobert Mustacchifailure occurred.
15443051d27SRobert Mustacchi.It Dv G_FORMAT
15543051d27SRobert MustacchiThe core file referred to by either
15643051d27SRobert Mustacchi.Fa core
15743051d27SRobert Mustacchior
15843051d27SRobert Mustacchi.Fa core_fd
15943051d27SRobert Mustacchiis not a valid ELF core file.
16043051d27SRobert Mustacchi.It Dv G_ISAINVAL
16143051d27SRobert MustacchiThe architecture of the core file referred to by either
16243051d27SRobert Mustacchi.Fa core
16343051d27SRobert Mustacchior
16443051d27SRobert Mustacchi.Fa core_fd
16543051d27SRobert Mustacchidoes not match the current running system.
16643051d27SRobert Mustacchi.It Dv G_LP64
16743051d27SRobert MustacchiThe calling process is a 32-bit process and the core file referenced by
16843051d27SRobert Mustacchieither
16943051d27SRobert Mustacchi.Fa core
17043051d27SRobert Mustacchior
17143051d27SRobert Mustacchi.Fa core_fd
17243051d27SRobert Mustacchirefers to a 64-bit process.
17343051d27SRobert Mustacchi.It Dv G_NOTE
17443051d27SRobert MustacchiThe ELF notes present in the core file referred to by either
17543051d27SRobert Mustacchi.Fa core
17643051d27SRobert Mustacchior
17743051d27SRobert Mustacchi.Fa core_fd
17843051d27SRobert Mustacchiare corrupt or missing required data.
17943051d27SRobert Mustacchi.It Dv G_STRANGE
18043051d27SRobert MustacchiAn unanticipated system error occurred while trying to open the core
18143051d27SRobert Mustacchifile and create the handle.
18243051d27SRobert MustacchiThe value of
18343051d27SRobert Mustacchi.Sy errno
18443051d27SRobert Mustacchiindicates the system failure.
18543051d27SRobert Mustacchi.El
18643051d27SRobert Mustacchi.Sh INTERFACE STABILITY
18743051d27SRobert Mustacchi.Sy Uncommitted
18843051d27SRobert Mustacchi.Sh MT-LEVEL
18943051d27SRobert Mustacchi.Sy MT-Safe
19043051d27SRobert Mustacchi.Sh SEE ALSO
19143051d27SRobert Mustacchi.Xr gcore 1 ,
19243051d27SRobert Mustacchi.Xr open 2 ,
19343051d27SRobert Mustacchi.Xr errno 3C ,
19443051d27SRobert Mustacchi.Xr libproc 3LIB ,
19543051d27SRobert Mustacchi.Xr Pfree 3PROC ,
19643051d27SRobert Mustacchi.Xr Pgrab_error 3PROC ,
19743051d27SRobert Mustacchi.Xr Prelease 3PROC ,
198*bbf21555SRichard Lowe.Xr core 5
199