【问题标题】:Is there a tool to obtain info on a particular symbol in an ELF .o or executable file?是否有工具可以获取 ELF .on 或可执行文件中特定符号的信息?
【发布时间】:2012-03-18 02:25:56
【问题描述】:

我正在寻找一种方便的方法(用于构建测试脚本)来查询目标文件中的单个符号。是否有工具可以回答问题(最好通过其退出状态)“文件 Y 中是否存在符号 X?”还是我只需要解析nm(1) 的输出,例如使用 grep 和适当的正则表达式?如果这样的工具可以提供有关符号的详细信息(大小、类型、值...),那就更好了。

【问题讨论】:

    标签: c linux elf binutils


    【解决方案1】:

    对于可执行/共享库,请查看 readelfObjdump,它们可以转储二进制符号(损坏或未损坏),您应该可以使用 grep 进行查找。

    它们的源代码很容易获得,因此您可以将它们简化为更简单的工具来完成手头的任务,或者直接导入它们的代码库(不是您真正需要的,您可以使用 @987654325 加载有问题的二进制文件@ 并使用dlsym 检查符号是否存在)。

    Objdump 面向二进制文件,nm 和 readelf 将读取 elf 目标文件。

    【讨论】:

    • nm 处理目标文件——我不明白你在“二进制文件”和“目标文件”之间的预期区别是什么。
    • @Perry:很好,当我做出这个回复时,我并没有集中注意力(因此可怕的语法:|)
    【解决方案2】:

    您可以直接使用libbfd,但浏览 API 并不明显如何直接获得您想要的信息。

    【讨论】:

    • libelf 也会浮现在脑海中,如果您只担心 ELF。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    • 2020-12-09
    • 1970-01-01
    • 1970-01-01
    • 2012-02-11
    相关资源
    最近更新 更多