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