dlmodinfo(3C)dlmodinfo(3C)NAMEdlmodinfo() - retrieve information about a loaded module (program or
shared library)
SYNOPSIS
[flag]... file... [library]...
uint64_t dlmodinfo(uint64_t ip_value,
struct load_module_desc *desc,
size_t desc_size,
void *(*read_tgt_mem)(void* buffer,
uint64_t ptr,
size_t bufsiz,
int ident),
int ident_parm,
uint64_t load_map_parm);
Multithread Usage
Thread safe in but not in
DESCRIPTION
is one of a family of routines that give the user direct access to the
dynamic linking facilities. retrieves information about a loaded mod‐
ule from a given address value. searches all currently loaded load
modules looking for a load module whose address range (address range of
all loaded segments) holds the given address value. The routine fills
the load_module_desc with information from the matching load module.
ip_value is the instruction pointer value of the requested library. If
the value is NULL, then desc contains the module info of itself. desc
is a buffer of memory allocated by the user program. The dynamic
loader fills this in with module information. desc_size is the size in
bytes of the desc buffer. read_tgt_mem is a pointer to a function used
by to retrieve needed information. If the value is NULL, the dynamic
loader uses its own internal data structures to find the correct load
module and the following two parameters are ignored.
ident_parm Is only used to pass the fourth parameter to
read_tgt_mem.
load_map_parm
Is only used when calling through read_tgt_mem. It con‐
tains the starting address of the load map.
Otherwise, the function pointer is used to read memory during its
search, using these parameters:
buffer a buffer supplied by to read into
ptr the virtual memory address to read from
bufsiz the size of buffer in bytes
ident the value of the ident_parm parameter to
On success, read_tgt_mem returns the value of its buffer parameter,
otherwise, it returns NULL. read_tgt_mem allows to find a load module
in one process on behalf of another. The calling process passes a
callback via read_tgt_mem in order to read memory in a different
process address space from the one in which resides. ip_value,
load_map_parm, and ptr from read_tgt_mem can be pointers to objects in
another process. For example, when a 32-bit program wants to enquire
about a 64-bit program, the ip_value and load_map_parm should be 64-bit
values. Any 32-bit pointers should be typecasted to 64 bits by the
user program when passed in the ip_value or load_map_parm parameters.
If the calling process calls with a callback registered via
read_tgt_mem, it must supply the starting address of the target
process' load map in the load_map_parm parameter to This can be
retrieved by using the dynamic table entry in the target program file.
A cross-process load module operation can be done via for example, by
issuing a call to
RETURN VALUE
If successful, returns a handle for the shared library as defined by
the return value from NULL is returned otherwise. The return values
are type-converted to
ERRORS
If fails, a subsequent call to returns one of the following values:
Cannot apply relocation in library.
Invalid address.
Invalid descriptor argument
Invalid descriptor version.
Out of memory.
failed in reading target memory.
failed on entry to or exit from
failed on exit from
failed on entry to
AUTHOR
was developed by HP.
SEE ALSO
System Tools
exec(2) System loader.
ld(1) Invokes the link editor.
Miscellaneous
a.out(4) Assembler, compiler, and linker output.
dlclose(3C) Unloads a shared library previously loaded by
dlerror(3C) Returns the last error message recorded by
dlerrno(3C) Returns an error code for the last error recorded by
dlget(3C) Returns information about a loaded module.
dlgetname(3C) Returns the name of the storage containing a load
module.
dlopen(3C) Loads a shared library.
dlsym(3C) Gets the address of a symbol in a shared library.
Texts and Tutorials
(See the option)
(See manuals(5) for ordering information)
ELF Applications Only dlmodinfo(3C)