xref: /illumos-gate/usr/src/man/man3proc/Plookup_by_addr.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 PLOOKUP_BY_ADDR 3PROC
1643051d27SRobert Mustacchi.Os
1743051d27SRobert Mustacchi.Sh NAME
1843051d27SRobert Mustacchi.Nm Plookup_by_addr ,
1943051d27SRobert Mustacchi.Nm Pxlookup_by_addr ,
2043051d27SRobert Mustacchi.Nm Pxlookup_by_addr_resolved ,
2143051d27SRobert Mustacchi.Nm Plookup_by_name ,
2243051d27SRobert Mustacchi.Nm Pxlookup_by_name
2343051d27SRobert Mustacchi.Nd lookup symbols in a process
24ab618543SJohn Levon.Sh LIBRARY
2543051d27SRobert Mustacchi.Lb libproc
26ab618543SJohn Levon.Sh SYNOPSIS
2743051d27SRobert Mustacchi.In libproc.h
2843051d27SRobert Mustacchi.Ft int
2943051d27SRobert Mustacchi.Fo Plookup_by_addr
3043051d27SRobert Mustacchi.Fa "struct ps_prochandle *P"
3143051d27SRobert Mustacchi.Fa "uintptr_t addr"
3243051d27SRobert Mustacchi.Fa "char *buf"
3343051d27SRobert Mustacchi.Fa "size_t size"
3443051d27SRobert Mustacchi.Fa "Gelf_Sym *symp"
3543051d27SRobert Mustacchi.Fc
3643051d27SRobert Mustacchi.Ft int
3743051d27SRobert Mustacchi.Fo Pxlookup_by_addr
3843051d27SRobert Mustacchi.Fa "struct ps_prochandle *P"
3943051d27SRobert Mustacchi.Fa "uintptr_t addr"
4043051d27SRobert Mustacchi.Fa "char *buf"
4143051d27SRobert Mustacchi.Fa "size_t size"
4243051d27SRobert Mustacchi.Fa "Gelf_Sym *symp"
4343051d27SRobert Mustacchi.Fa "prsyminfo_t *sip"
4443051d27SRobert Mustacchi.Fc
4543051d27SRobert Mustacchi.Ft int
4643051d27SRobert Mustacchi.Fo Pxlookup_by_addr_resolved
4743051d27SRobert Mustacchi.Fa "struct ps_prochandle *P"
4843051d27SRobert Mustacchi.Fa "uintptr_t addr"
4943051d27SRobert Mustacchi.Fa "char *buf"
5043051d27SRobert Mustacchi.Fa "size_t size"
5143051d27SRobert Mustacchi.Fa "Gelf_Sym *symp"
5243051d27SRobert Mustacchi.Fa "prsyminfo_t *sip"
5343051d27SRobert Mustacchi.Fc
5443051d27SRobert Mustacchi.Ft int
5543051d27SRobert Mustacchi.Fo Plookup_by_name
5643051d27SRobert Mustacchi.Fa "struct ps_prochandle *P"
5743051d27SRobert Mustacchi.Fa "const char *object"
5843051d27SRobert Mustacchi.Fa "const char *symbol"
5943051d27SRobert Mustacchi.Fa "GElf_Sym *symp"
6043051d27SRobert Mustacchi.Fc
6143051d27SRobert Mustacchi.Ft int
6243051d27SRobert Mustacchi.Fo Pxlookup_by_name
6343051d27SRobert Mustacchi.Fa "struct ps_prochandle *P"
6443051d27SRobert Mustacchi.Fa "Lmid_t lmid"
6543051d27SRobert Mustacchi.Fa "const char *object"
6643051d27SRobert Mustacchi.Fa "const char *symbol"
6743051d27SRobert Mustacchi.Fa "GElf_Sym *symp"
6843051d27SRobert Mustacchi.Fa "prsyminfo_t *sip"
6943051d27SRobert Mustacchi.Fc
7043051d27SRobert Mustacchi.Sh DESCRIPTION
7143051d27SRobert MustacchiThe
7243051d27SRobert Mustacchi.Fn Plookup_by_addr ,
7343051d27SRobert Mustacchi.Fn Pxlookup_by_addr ,
7443051d27SRobert Mustacchi.Fn Pxlookup_by_addr_resolved ,
7543051d27SRobert Mustacchi.Fn Plookup_by_name ,
7643051d27SRobert Mustacchiand
7743051d27SRobert Mustacchi.Fn Pxlookup_by_name
7843051d27SRobert Mustacchifunctions look up symbol information in the process handle
7943051d27SRobert Mustacchi.Fa P
8043051d27SRobert Mustacchiand fill in the ELF symbol information in
8143051d27SRobert Mustacchi.Fa symp
8272d3dbb9SYuri Pankovwith the found symbol.
8372d3dbb9SYuri PankovSymbols may be looked up both by address and name.
8443051d27SRobert Mustacchi.Pp
8543051d27SRobert MustacchiThe
8643051d27SRobert Mustacchi.Fn Plookup_by_addr
8743051d27SRobert Mustacchifunction looks up symbol information corresponding to the address
8843051d27SRobert Mustacchi.Fa addr .
8943051d27SRobert MustacchiIf found, up to
9043051d27SRobert Mustacchi.Fa size
9143051d27SRobert Mustacchibytes of the symbol's name, including the null terminator will be filled
9243051d27SRobert Mustacchiin to the buffer
9343051d27SRobert Mustacchi.Fa buf .
9443051d27SRobert Mustacchi.Pp
9543051d27SRobert MustacchiThe
9643051d27SRobert Mustacchi.Fn Pxlookup_by_addr
9743051d27SRobert Mustacchifunction is identical to the
9843051d27SRobert Mustacchi.Fn Plookup_by_addr
9943051d27SRobert Mustacchifunction, except that it also fills in the structure
10043051d27SRobert Mustacchi.Fa sip
10172d3dbb9SYuri Pankovwith additional information.
10272d3dbb9SYuri PankovThe definition of the
10343051d27SRobert Mustacchi.Sy prsyminfo_t
10443051d27SRobert Mustacchiis found in
105b31ca922SChris Fraire.Xr libproc 3LIB .
10643051d27SRobert Mustacchi.Pp
10743051d27SRobert MustacchiThe
10843051d27SRobert Mustacchi.Fn Pxlookup_by_addr_resolved
10943051d27SRobert Mustacchifunction is similar to the
11043051d27SRobert Mustacchi.Fn Pxlookup_by_addr
11143051d27SRobert Mustacchifunction; however, it attempts to resolve the paths present in the
11243051d27SRobert Mustacchi.Sy prsyminfo_t
11343051d27SRobert Mustacchito an absolute path on the file system.
11443051d27SRobert Mustacchi.Pp
11543051d27SRobert MustacchiThe
11643051d27SRobert Mustacchi.Fn Plookup_by_name
11772d3dbb9SYuri Pankovfunction attempts to look up a symbol based on its name.
11872d3dbb9SYuri PankovThe
11943051d27SRobert Mustacchi.Fa object
12043051d27SRobert Mustacchiargument allows the caller to specify a specific object that was mapped
12143051d27SRobert Mustacchiin by the run-time link-editor to search for
12243051d27SRobert Mustacchi.Fa symbol
12372d3dbb9SYuri Pankovin.
12472d3dbb9SYuri PankovThe system provides three special values which may be passed in for
12543051d27SRobert Mustacchi.Fa object .
12643051d27SRobert MustacchiThe value
12743051d27SRobert Mustacchi.Dv PR_OBJ_EXEC
12872d3dbb9SYuri Pankovrefers to the executable's object (a.out).
12972d3dbb9SYuri PankovThe value
13043051d27SRobert Mustacchi.Dv PR_OBJ_LDSO
13143051d27SRobert Mustacchirefers to the object
13243051d27SRobert Mustacchi.Sy ld.so.1 .
13343051d27SRobert MustacchiThe value
13443051d27SRobert Mustacchi.Dv PR_OBJ_EVERY
13543051d27SRobert Mustacchiindicates that every object should be searched.
13643051d27SRobert Mustacchi.Pp
13743051d27SRobert MustacchiThe
13843051d27SRobert Mustacchi.Fn Pxlookup_by_name
13943051d27SRobert Mustacchifunction is similar to the
14043051d27SRobert Mustacchi.Fn Plookup_by_name
14143051d27SRobert Mustacchifunction; however, it allows a link-map identifier,
14243051d27SRobert Mustacchi.Fa lmid ,
14343051d27SRobert Mustacchito be specified and also provides additional information about the
14443051d27SRobert Mustacchisymbol in the form of the
14543051d27SRobert Mustacchi.Sy prsyminfo_t
14643051d27SRobert Mustacchi.Fa sip .
14743051d27SRobert MustacchiThe specification of
14843051d27SRobert Mustacchi.Fa lmid
14943051d27SRobert Mustacchirestricts the search for the object named
15043051d27SRobert Mustacchi.Fa object
15143051d27SRobert Mustacchiand symbol named
15243051d27SRobert Mustacchi.Fa symbol
15343051d27SRobert Mustacchito the specified link-map.
15443051d27SRobert Mustacchi.Pp
15572d3dbb9SYuri PankovThere are three special link-map identifiers that may be passed in.
15672d3dbb9SYuri PankovThe symbol
15743051d27SRobert Mustacchi.Dv PR_LMID_EVERY
15872d3dbb9SYuri Pankovindicates that every link-map should be searched.
15972d3dbb9SYuri PankovThe symbol
16043051d27SRobert Mustacchi.Dv LM_ID_BASE
16143051d27SRobert Mustacchiindicates that the base link-map, the one that is used for the
16272d3dbb9SYuri Pankovexecutable should be searched.
16372d3dbb9SYuri PankovFinally, the symbol
16443051d27SRobert Mustacchi.Dv LM_ID_LDSO
16572d3dbb9SYuri Pankovrefers to the link-map that is used by the run-time link editor, ld.so.1.
16672d3dbb9SYuri PankovThe
16743051d27SRobert Mustacchi.Fn Plookup_by_name
16843051d27SRobert Mustacchifunction behaves like
16943051d27SRobert Mustacchi.Fn Pxlookup_by_name
17043051d27SRobert Mustacchiwhen the
17143051d27SRobert Mustacchi.Dv PR_LMID_EVERY
17243051d27SRobert Mustacchiargument is passed to
17343051d27SRobert Mustacchi.Fa lmid ,
17443051d27SRobert Mustacchiindicating that every link-map should be searched.
17543051d27SRobert Mustacchi.Sh RETURN VALUES
17643051d27SRobert MustacchiUpon successful completion, the
17743051d27SRobert Mustacchi.Fn Plookup_by_addr ,
17843051d27SRobert Mustacchi.Fn Pxlookup_by_addr ,
17943051d27SRobert Mustacchi.Fn Pxlookup_by_addr_resolved ,
18043051d27SRobert Mustacchi.Fn Plookup_by_name ,
18143051d27SRobert Mustacchiand
18243051d27SRobert Mustacchi.Fn Pxlookup_by_name
18343051d27SRobert Mustacchifunctions return
18443051d27SRobert Mustacchi.Sy 0
18572d3dbb9SYuri Pankovand fill in the symbol information.
18672d3dbb9SYuri PankovOtherwise,
18743051d27SRobert Mustacchi.Sy -1
18843051d27SRobert Mustacchiis returned to indicate that the symbol could not be found.
18943051d27SRobert Mustacchi.Sh INTERFACE STABILITY
19043051d27SRobert Mustacchi.Sy Uncommitted
19143051d27SRobert Mustacchi.Sh MT-LEVEL
19243051d27SRobert MustacchiSee
19343051d27SRobert Mustacchi.Sy LOCKING
19443051d27SRobert Mustacchiin
19543051d27SRobert Mustacchi.Xr libproc 3LIB .
19643051d27SRobert Mustacchi.Sh SEE ALSO
19743051d27SRobert Mustacchi.Xr elf 3ELF ,
19843051d27SRobert Mustacchi.Xr gelf 3ELF ,
19943051d27SRobert Mustacchi.Xr libproc 3LIB ,
200*bbf21555SRichard Lowe.Xr proc 5
201