MyWebUniversity.com Home Page
 



OpenSolaris man pages main menu


Standard C Library Functions                           dladdr(3C)



NAME
     dladdr, dladdr1 - translate address to symbolic information

SYNOPSIS
     #include 

     int dladdr(void *address, Dlinfot *dlip);


     int dladdr1(void *address, Dlinfot *dlip, void **info, int flags);


DESCRIPTION
     The dladdr() and dladdr1() functions determine if the speci-
     fied  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 Dlinfot structure must be preallocated  by  the  user.
     The  structure  members  are filled in by dladdr(), based on
     the specified address. The Dlinfot structure includes  the
     following members:

           const char    *dlifname;
           void          *dlifbase;
           const char    *dlisname;
           void          *dlisaddr;



     The Dlinfot members provide the following information.

     dlifname    Contains a pointer to the filename of the  con-
                  taining object.


     dlifbase    Contains the base  address  of  the  containing
                  object.


     dlisname    Contains a pointer to the symbol name  that  is
                  nearest  to  the specified address. This symbol
                  either represents the exact  address  that  was
                  specified,  or  is  the  nearest  symbol with a
                  lower address.



SunOS 5.11           Last change: 4 Feb 2009                    1






Standard C Library Functions                           dladdr(3C)



     dlisaddr    Contains  the  actual  address  of  the  symbol
                  pointed to by dlisname.



     The dladdr1() function provides for addition information  to
     be returned as specified by the flags argument:

     RTLDLSYMENT     Obtain the ELF symbol table entry for the
                        matched  symbol. The info argument points
                        to  a  symbol  pointer  as   defined   in
                            (Elf32Sym    **info    or
                        Elf64Sym **info). Most of  the  informa-
                        tion  found  in an ELF symbol can only be
                        properly  interpreted  by   the   runtime
                        linker.  However,  there  are  two fields
                        that contain information  useful  to  the
                        caller  of  dladdr1():  The stsize field
                        contains the size of the referenced item.
                        The  stinfo  field  provides symbol type
                        and binding attributes.  See  the  Linker
                        and Libraries Guild for more information.


     RTLDLINKMAP    Obtain the Linkmap for the matched file.
                        The  info  argument  points to a Linkmap
                        pointer  as   defined   in   
                        (Linkmap **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 Dlinfot 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 Linker and Libraries
     Guide.

ATRIBUTES
     See attributes(5) for descriptions of the  following  attri-
     butes:










SunOS 5.11           Last change: 4 Feb 2009                    2






Standard C Library Functions                           dladdr(3C)



     
           ATRIBUTE TYPE               ATRIBUTE VALUE       
    
     MT-Level                     MT-Safe                     
    


SEE ALSO
     ld(1),  dlclose(3C),  dldump(3C),  dlerror(3C),  dlopen(3C),
     dlsym(3C), attributes(5)


     Linker and Libraries Guide

NOTES
     The Dlinfot 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 dlisname and dlisaddr 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 represent-
     ing the start of the mapped object. As a label, this  symbol
     has no size. The dlisaddr member is set to the base address
     of the associated object. The dlisname member is set to the
     symbol  name  START.  If  the  flag  argument  is  set  to
     RTLDLSYMENT, symbol information for START is returned.


     If an object is acting as a filter,  care  should  be  taken
     when interpreting 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 the Linker and
     Libraries Guide.













SunOS 5.11           Last change: 4 Feb 2009                    3



OpenSolaris man pages main menu

Contact us      |       About us      |       Term of use      |       Copyright © 2000-2010 MyWebUniversity.com ™