剂量dladdr能够从静态成员获取信息?

时间:2014-02-18 08:59:00

标签: c++ c shared-libraries 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 个答案:

答案 0 :(得分:1)

不,dladdr不能保证或保证这一点。它只能查看模块中的符号表。如果符号表包含符号,则可以将其提供给您。如果没有,不是。符号表中的符号取决于模块的编译方式,链接方式以及剥离方式和方式。

一般来说,如果代码可以链接到它,那么dladdr应该找到它。