我正在寻找一种便捷的方式(用于构建测试脚本),以查询目标文件中的单个符号。是否有一个工具可以通过其退出状态回答问题“符号X是否存在于文件Y中?”或者我只需要解析nm(1)的输出,例如使用grep和适当的正则表达式?更好的是,如果这样的工具可以提供有关符号的详细信息(大小、类型、值等)。
对于可执行文件/共享库,可以查看readelf或Objdump,它们可以转储二进制符号(名称混淆或未混淆),您应该能够使用grep进行搜索。它们的源代码很容易获得,因此您可能可以将它们调整为更简单的工具,以完成手头的任务,或直接导入它们的代码库(并不是真正需要,您只需使用dlopen加载有问题的二进制文件,并使用dlsym检查符号是否存在)。Objdump适用于二进制文件,nm和readelf将读取elf对象文件。