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