标签: c linux elf binutils
我正在寻找一种方便的方法(用于构建测试脚本)来查询目标文件中的各个符号。是否有一个工具可以回答问题(最好是通过退出状态)“文件Y中是否存在符号X?”或者我只需要解析nm(1)的输出,例如用grep和适当的正则表达式?如果这样的工具可以提供关于符号(大小,类型,值,......)的详细信息,那就更好了。
nm(1)
答案 0 :(得分:5)
对于可执行文件/共享库,请查看readelf或Objdump,他们可以转储二进制符号(错误或未修改),您应该能够进行grep。
它们的源代码很容易获得,因此您可以将它们转换为更简单的工具来完成手头的任务或直接导入它们的代码库(不是您真正需要的,您只需加载带有问题的二进制文件{{ 1}}并使用dlsym检查符号是否存在。)
dlsym
Objdump面向二进制文件nm,readelf将读取elf目标文件。
答案 1 :(得分:0)
您可以直接使用libbfd,但浏览API并不清楚如何直接获取所需信息。
libbfd