0

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

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

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

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

4

1 回答 1

1

不,dladdr也不能承诺或保证。它只能查看模块中的符号表。如果符号表包含符号,那么它可以给你。如果不是,则不是。符号表中的符号取决于模块的编译方式、链接方式以及剥离方式和是否剥离。

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

于 2014-02-18T09:09:07.537 回答