在一些图书馆的研究中,我发现了这种代码

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

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


其中dirSep是该代码存在的类中的static const char*成员(在come函数中),所以我的问题是:是否有任何地方记载了dladdr函数能够获取信息表单static const member字段?

最佳答案

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

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

关于c++ - 剂量dladdr能够从静态成员获取信息?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21848606/

10-10 21:22