我正在为小型转储的可执行文件生成符号文件。小型转储符号文件中的第一行包含为其生成文件的可执行文件的特定 ID。如何在可执行文件中找到该 ID?当我使用 readelf 检查构建 ID 时,它会有所不同(甚至长度也不同)。
最佳答案
How can I find that id inside the executable?
那个 id 是什么?大概是您的工具使用的那个,只是您没有告诉我们您实际使用的是哪个工具。
大多数 Linux 工具(例如 GDB)在 elf 二进制文件中使用特殊的 NT_GNU_BUILD_ID
注释将调试信息与二进制文件相关联。您可以在 readelf -n a.out
输出中看到该构建 ID。
When I use readelf to check build id then it's something different
再一次,你到底看到了什么?你运行什么命令?
也许它们是一回事,而您只是“看错了”。或者它们的编码方式不同,或者您看错了东西。我们无法判断。
关于linux - Linux 上 ELF 的小型转储符号模块 ID 和构建 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51326809/