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