svcadm(1M)을 검색하려면 섹션에서 1M 을 선택하고, 맨 페이지 이름에 svcadm을 입력하고 검색을 누른다.
dladdr(3c)
Standard C Library Functions dladdr(3C)
NAME
dladdr, dladdr1 - translate address to symbolic information
SYNOPSIS
#include <dlfcn.h>
int dladdr(void *address, Dl_info_t *dlip);
int dladdr1(void *address, Dl_info_t *dlip, void **info,
int flags);
DESCRIPTION
The dladdr() and dladdr1() functions determine if the specified address
is located within one of the mapped objects that make up the current
applications address space. An address is deemed to fall within a
mapped object when it is between the base address, and the _end address
of that object. See NOTES. If a mapped object fits this criteria, the
symbol table made available to the runtime linker is searched to locate
the nearest symbol to the specified address. The nearest symbol is one
that has a value less than or equal to the required address.
The Dl_info_t structure must be preallocated by the user. The structure
members are filled in by dladdr(), based on the specified address. The
Dl_info_t structure includes the following members:
const char *dli_fname;
void *dli_fbase;
const char *dli_sname;
void *dli_saddr;
The Dl_info_t members provide the following information.
dli_fname
Contains a pointer to the filename of the containing object.
dli_fbase
Contains the base address of the containing object.
dli_sname
Contains a pointer to the symbol name that is nearest to the speci‐
fied address. This symbol either represents the exact address that
was specified, or is the nearest symbol with a lower address.
dli_saddr
Contains the actual address of the symbol pointed to by dli_sname.
The dladdr1() function provides for addition information to be returned
as specified by the flags argument:
RTLD_DL_SYMENT
Obtain the ELF symbol table entry for the matched symbol. The info
argument points to a symbol pointer as defined in <sys/elf.h>
(Elf32_Sym **info or Elf64_Sym **info). Most of the information
found in an ELF symbol can only be properly interpreted by the run‐
time linker. However, there are two fields that contain information
useful to the caller of dladdr1(): The st_size field contains the
size of the referenced item. The st_info field provides symbol type
and binding attributes. See Oracle Solaris 11.4 Linkers and
Libraries Guide for more information.
RTLD_DL_LINKMAP
Obtain the Link_map for the matched file. The info argument points
to a Link_map pointer as defined in <sys/link.h> (Link_map **info).
RETURN VALUES
If the specified address cannot be matched to a mapped object, a 0 is
returned. Otherwise, a non-zero return is made and the associated
Dl_info_t elements are filled.
USAGE
The dladdr() and dladdr1() functions are one of a family of functions
that give the user direct access to the dynamic linking facilities.
These facilities are available to dynamically-linked processes only.
See Oracle Solaris 11.4 Linkers and Libraries Guide.
ATTRIBUTES
See attributes(7) for descriptions of the following attributes:
tab() box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i) ATTRIBUTE TYPEAT‐
TRIBUTE VALUE _ MT-LevelMT-Safe
SEE ALSO
dlopen(3C), ld(1), dlclose(3C), dldump(3C), dlerror(3C), dlsym(3C),
attributes(7)
Oracle Solaris 11.4 Linkers and Libraries Guide
NOTES
The Dl_info_t pointer elements point to addresses within the mapped
objects. These pointers can become invalid if objects are removed prior
to these elements use. See dlclose(3C).
If no symbol is found to describe the specified address, both the
dli_sname and dli_saddr members are set to 0.
If the address specified exists within a mapped object in the range
between the base address and the address of the first global symbol in
the object, the reserved local symbol _START_ is returned. This symbol
acts as a label representing the start of the mapped object. As a
label, this symbol has no size. The dli_saddr member is set to the base
address of the associated object. The dli_sname member is set to the
symbol name _START_. If the flag argument is set to RTLD_DL_SYMENT,
symbol information for _START_ is returned.
If an object is acting as a filter, care should be taken when inter‐
preting the address of any symbol obtained using a handle to this
object. For example, using dlsym(3C) to obtain the symbol _end for this
object, results in returning the address of the symbol _end within the
filtee, not the filter. For more information on filters see Shared
Objects as Filters in Oracle Solaris 11.4 Linkers and Libraries Guide.
Oracle Solaris 11.4 23 April 2014 dladdr(3C)