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

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

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

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

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

1 ответ

Решение

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

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

Другие вопросы по тегам