доза dladdr в состоянии получить информацию от статического члена?

0

во время восстановления какой-то библиотеки я нашел такой код

Dl_info info = {
   NULL,
   NULL,
   NULL,
   NULL
};

if (!dladdr((void*) dirSep, &info)) {
   return libPath.c_str();
}

где dirSep - это static const char* член в классе, где присутствует этот код (в функции члена-члена), поэтому мой вопрос: есть ли какое-либо место, зарегистрированное, что функция dladdr может получить поле информации static const member?

Теги:
shared-libraries

1 ответ

1
Лучший ответ

Нет, и dladdr не может обещать или гарантировать это. Он может видеть только таблицу символов в модуле. Если таблица символов содержит символ, то она может передать ее вам. Если нет, то нет. Какие символы находятся в таблице символов, зависит от того, как компилируется модуль, как он связан, и как и отделяется ли он.

Вообще говоря, если код мог бы ссылаться на него, тогда dladdr должен его найти.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню