【问题标题】:ELF file versionsELF 文件版本
【发布时间】:2009-02-17 16:47:00
【问题描述】:

我正在处理elfdump 命令的克隆。

在所有可执行文件上运行 elfdump -ecps *file* 时,我的程序运行良好。但是,当我在库文件(例如 libc.so)上运行程序时,它会为 .symtab 部分中的所有符号打印出不正确的版本号(特别是它们都为零)。我已经查看了很多次文档,但我无法弄清楚为什么会发生这种情况。

有人可以提供一些提示吗?或者可能如何检测它是否是一个库,以便我可以硬编码一个 0?

【问题讨论】:

  • 您的问题不够具体,我们无法提供超出规范的帮助。规范就在那里,如果你遵循它,事情应该会奏效,如果他们不尝试发布一个确切的例子,它可能会得到很好的回应。

标签: c static-libraries elf


【解决方案1】:

我相信,您可以通过检查 e_type 字段是否为 ET_DYN 来确定您是否针对共享库运行。 (人精灵(5))

Ulrich Drepper 的 article 涵盖了 ELF 中的 glibc 每符号版本控制技巧。也许那里有您以前没有遇到过的其他信息。 linux 上的手册页似乎没有涵盖 ELF 文档中的每个符号版本信息。

【讨论】:

    猜你喜欢
    • 2018-02-27
    • 1970-01-01
    • 2011-03-16
    • 2017-12-01
    • 1970-01-01
    • 2023-03-15
    • 2021-10-07
    • 2021-12-17
    • 2011-03-07
    相关资源
    最近更新 更多