【问题标题】:dose dladdr able to get the info from static member?剂量 dladdr 能够从静态成员获取信息吗?
【发布时间】:2014-02-18 08:59:00
【问题描述】:

在研究某个库时,我发现了这种代码

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

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

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

【问题讨论】:

    标签: c++ c shared-libraries dladdr


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2010-10-28
      • 2017-10-16
      • 2020-08-09
      • 2011-09-20
      • 1970-01-01
      • 2017-09-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多