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 PADDR_TO_CTF 3PROC 1643051d27SRobert Mustacchi.Os 1743051d27SRobert Mustacchi.Sh NAME 1843051d27SRobert Mustacchi.Nm Paddr_to_ctf , 1943051d27SRobert Mustacchi.Nm Plmid_to_ctf , 2043051d27SRobert Mustacchi.Nm Pname_to_ctf 2143051d27SRobert Mustacchi.Nd lookup CTF data 2243051d27SRobert Mustacchi.Sh SYNOPSIS 2343051d27SRobert Mustacchi.Lb libproc 2443051d27SRobert Mustacchi.In libproc.h 2543051d27SRobert Mustacchi.Ft "ctf_file_t *" 2643051d27SRobert Mustacchi.Fo Paddr_to_ctf 2743051d27SRobert Mustacchi.Fa "struct ps_prochandle *P" 2843051d27SRobert Mustacchi.Fa "uintptr_t addr" 2943051d27SRobert Mustacchi.Fc 3043051d27SRobert Mustacchi.Ft "ctf_file_t *" 3143051d27SRobert Mustacchi.Fo Plmid_to_ctf 3243051d27SRobert Mustacchi.Fa "struct ps_prochandle *P" 3343051d27SRobert Mustacchi.Fa "Lmid_t lmid" 3443051d27SRobert Mustacchi.Fa "const char *name" 3543051d27SRobert Mustacchi.Fc 3643051d27SRobert Mustacchi.Ft "ctf_file_t *" 3743051d27SRobert Mustacchi.Fo Pname_to_ctf 3843051d27SRobert Mustacchi.Fa "struct ps_prochandle *P" 3943051d27SRobert Mustacchi.Fa "const char *name" 4043051d27SRobert Mustacchi.Fc 4143051d27SRobert Mustacchi.Sh DESCRIPTION 4243051d27SRobert MustacchiThe 4343051d27SRobert Mustacchi.Fn Paddr_to_ctf , 4443051d27SRobert Mustacchi.Fn Plmid_to_ctf , 4543051d27SRobert Mustacchiand 4643051d27SRobert Mustacchi.Fn Pname_to_ctf 4743051d27SRobert Mustacchifunctions lookup CTF (Compact C Type Format) data, for use with 4843051d27SRobert Mustacchi.Sy libctf , 4943051d27SRobert Mustacchifrom the process represented by the handle 5043051d27SRobert Mustacchi.Fa P . 5143051d27SRobert MustacchiIn all cases, the CTF sections of both the running executable and its 5243051d27SRobert Mustacchishared libraries are searched. 5343051d27SRobert Mustacchi.Pp 5443051d27SRobert MustacchiThe CTF container returned is valid as long as the process handle 5543051d27SRobert Mustacchi.Fa P 56*72d3dbb9SYuri Pankovis valid. 57*72d3dbb9SYuri PankovThat is, until a call to 5843051d27SRobert Mustacchi.Xr Prelease 3PROC 59*72d3dbb9SYuri Pankovis made. 60*72d3dbb9SYuri PankovFurther, consumers must not close the CTF container. 6143051d27SRobert Mustacchi.Pp 6243051d27SRobert MustacchiThe 6343051d27SRobert Mustacchi.Fn Paddr_to_ctf 6443051d27SRobert Mustacchifunction attempts to find the CTF section, if any, that exists for the 6543051d27SRobert Mustacchiaddress 6643051d27SRobert Mustacchi.Fa addr . 6743051d27SRobert MustacchiNote, not all addresses correspond to memory regions that have CTF 68*72d3dbb9SYuri Pankovdata. 69*72d3dbb9SYuri PankovFor example, if a user creates a region of anonymous memory through the 7043051d27SRobert Mustacchi.Xr mmap 2 7143051d27SRobert Mustacchifunction, then it will not have any corresponding CTF information. 7243051d27SRobert Mustacchi.Pp 7343051d27SRobert MustacchiThe 7443051d27SRobert Mustacchi.Fn Pname_to_ctf 7543051d27SRobert Mustacchifunction looks up the object named 7643051d27SRobert Mustacchi.Fa name 77*72d3dbb9SYuri Pankovand returns the corresponding CTF section, if any exists. 78*72d3dbb9SYuri PankovTwo special values may be used for name. 79*72d3dbb9SYuri PankovThe macro 8043051d27SRobert Mustacchi.Dv PR_OBJ_EXEC 8143051d27SRobert Mustacchirefers to the executable object itself and the macro 8243051d27SRobert Mustacchi.Dv PR_OBJ_LDSO refers to the object ld.so.1 . 8343051d27SRobert Mustacchi.Pp 8443051d27SRobert MustacchiThe 8543051d27SRobert Mustacchi.Fn Plmid_to_ctf 8643051d27SRobert Mustacchifunction is similar to 8743051d27SRobert Mustacchi.Fn Pname_to_ctf . 8843051d27SRobert MustacchiIt allows the passing of a link-map identifier, 8943051d27SRobert Mustacchi.Fa lmid , 9043051d27SRobert Mustacchiwhich constricts the search of the object named with 9143051d27SRobert Mustacchi.Fa name 92*72d3dbb9SYuri Pankovto that link-map. 93*72d3dbb9SYuri PankovThe special value of 9443051d27SRobert Mustacchi.Dv PR_LMID_EVERY 9543051d27SRobert Mustacchiindicates that every link-map should be searched, which is equivalent 9643051d27SRobert Mustacchiin behavior to the 9743051d27SRobert Mustacchi.Fn Pname_to_ctf 9843051d27SRobert Mustacchifunction. 9943051d27SRobert Mustacchi.Sh RETURN VALUES 10043051d27SRobert MustacchiUpon successful completion, the 10143051d27SRobert Mustacchi.Fn Paddr_to_ctf , 10243051d27SRobert Mustacchi.Fn Plmid_to_ctf , 10343051d27SRobert Mustacchiand 10443051d27SRobert Mustacchi.Fn Pname_to_ctf 10543051d27SRobert Mustacchifunctions return a pointer to the corresponding CTF container. 10643051d27SRobert MustacchiOtherwise, if none exists then 10743051d27SRobert Mustacchi.Dv NULL 10843051d27SRobert Mustacchiis returned. 10943051d27SRobert Mustacchi.Sh INTERFACE STABILITY 11043051d27SRobert Mustacchi.Sy Uncommitted 11143051d27SRobert Mustacchi.Sh MT-LEVEL 11243051d27SRobert MustacchiSee 11343051d27SRobert Mustacchi.Sy LOCKING 11443051d27SRobert Mustacchiin 11543051d27SRobert Mustacchi.Xr libproc 3LIB . 11643051d27SRobert Mustacchi.Sh SEE ALSO 11743051d27SRobert Mustacchi.Xr libproc 3LIB , 11843051d27SRobert Mustacchi.Xr ctf 4 119