在研究某些库的过程中,我找到了这种代码
Dl_info info = {
NULL,
NULL,
NULL,
NULL
};
if (!dladdr((void*) dirSep, &info)) {
return libPath.c_str();
}
其中dirSep
是存在此代码的类中的static const char*
成员(来自成员函数),所以我的问题是:是否有任何地方记录dladdr
函数能够获得信息表单static const member
字段?
答案 0 :(得分:1)
不,dladdr
不能保证或保证这一点。它只能查看模块中的符号表。如果符号表包含符号,则可以将其提供给您。如果没有,不是。符号表中的符号取决于模块的编译方式,链接方式以及剥离方式和方式。
一般来说,如果代码可以链接到它,那么dladdr
应该找到它。