xref: /illumos-gate/usr/src/man/man3proc/Paddr_to_ctf.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 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