是否有一个工具来获取ELF .o或可执行文件中的特定符号的信息?

我正在寻找一种方便的方法(用于构buildtesting脚本)来查询对象文件中的单个符号。 是否有一个工具可以回答问题(最好是通过退出状态)“文件Y中是否存在符号X? 或者我只需要parsingnm(1)的输出,例如用grep和适当的正则expression式? 如果这样的工具可以提供有关符号(大小,types,价值等)的详细信息,那更好。

对于一个可执行文件/共享库,给readelf或Objdump一下,他们可以转储一个二进制符号(mangled或unmangled),你应该可以grep。

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

Objdump面向二进制文件, nm和readelf将读取精灵对象文件。

您可以直接使用libbfd ,但是通过API浏览,如何直接获取所需的信息并不明显。