NAME | SYNOPSIS | API RESTRICTIONS | DESCRIPTION | PARAMETERS | RETURN VALUES | ATTRIBUTES | SEE ALSO | NOTES
#include <cx/dlfcn.h>int dladdr(void *address, Dl_info *dlip);
The function or functions documented here may not be used safely in all application contexts with all APIs provided in the ChorusOS 5.0 product.
See API(5FEA) for details.
The dladdr() system call is a member of the dynamic linking API, a family of routines that give the user direct access to dynamic linking functionality.
The dladdr() system call is only available to programs and libraries compiled with imake rules of the form DynamicTypeTarget(), where Type is User, Sup, CXXUser, CXXSup or Library.
See the ChorusOS 5.0 Application Developer's Guide for more information on building executables with dynamic libraries.
The dladdr() system call determines whether the specified address is located within one of the mapped objects that make up the address space of the current application. An address is considered to fall within a mapped object when it is between the base address and the _end address of that object. If a mapped object fits this criterion, the symbol table made available to the run-time linker is searched to locate the symbol nearest the address specified. The nearest symbol is the one that has a value less than or equal to the required address.
The Dl_info structure must be preallocated by the user. The structure members are filled by dladdr() based on the specified address. The Dl_info structure includes the following members:
Contains a pointer to the filename of the containing object.
Contains the base address of the containing object.
Contains a pointer to the symbol name nearest to the address specified. This symbol either has the same address or is the nearest symbol with a lower address.
Contains the actual address of the above symbol.
If the specified address cannot be matched to a mapped object, 0 is returned. Otherwise, a non-zero value is returned and the associated Dl_info elements are filled.
See attributes(5) for descriptions of the following attributes:
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
---|---|
Interface Stability | Evolving |
The Dl_info pointer elements point to addresses within the mapped objects. These addresses may become invalid if objects are removed before the pointer elements are used (see dlclose(2K)). If no symbol is found to describe the specified address, both dli_sname and dli_saddr members are set to 0.
NAME | SYNOPSIS | API RESTRICTIONS | DESCRIPTION | PARAMETERS | RETURN VALUES | ATTRIBUTES | SEE ALSO | NOTES