dladdr()

Преобразовать адрес в символьную информацию

Прототип:

#include <dlfcn.h>
int dladdr( void *address,
Dl_info *dlip );

Аргументы:

address
Адрес, который необходимо преобразовать в информацию о символе.
dlip
Указатель на структуру Dl_info, в которой функция размещает информацию о символе. Приложение должно выделить память для структуры; dladdr() модифицирует поля структуры, основываясь на указанном адресе address. Если dladdr() не может найти символ, определенный в address, функция устанавливает dli_sname и dli_saddr в NULL.

Библиотека:

libc

Описание:

Функция dladdr() определяет, находится ли указанный address внутри одной из библиотек, входящих в адресное пространство вызывающего процесса.


Note: ФункцияThe dladdr() доступна только для процессов с динамическим связыванием.

Возвращаемое значение:

0 в случае, если для address не найдена символьная информация, или ненулевое значение в ином случае.

Классификация:

Unix

Безопасность использования
Точка остановки потока
Нет
Обработчик прерываний
Нет
Обработчик сигналов
Нет
В потоке
Да

Предостережения:

Указатели Dl_info могут стать некорректными в случае, если динамическая библиотека закрыта с помощью dlclose().

Нет способа определить, какой символ получен, если множество символов отображается на один и тот же адрес.

Тематические ссылки:

Dl_info, dlclose(), dlerror(), dlopen(), dlsym()




Предыдущий раздел: Описание API системной библиотеки