во время восстановления какой-то библиотеки я нашел такой код
Dl_info info = {
NULL,
NULL,
NULL,
NULL
};
if (!dladdr((void*) dirSep, &info)) {
return libPath.c_str();
}
где dirSep
- это static const char*
член в классе, где присутствует этот код (в функции члена-члена), поэтому мой вопрос: есть ли какое-либо место, зарегистрированное, что функция dladdr
может получить поле информации static const member
?
Нет, и dladdr
не может обещать или гарантировать это. Он может видеть только таблицу символов в модуле. Если таблица символов содержит символ, то она может передать ее вам. Если нет, то нет. Какие символы находятся в таблице символов, зависит от того, как компилируется модуль, как он связан, и как и отделяется ли он.
Вообще говоря, если код мог бы ссылаться на него, тогда dladdr
должен его найти.