при поиске какой-то библиотеки я нашел такой код
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
должен найти это.
Других решений пока нет …