首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从核心文件中获取共享对象构建ID?

如何从核心文件中获取共享对象构建ID?
EN

Stack Overflow用户
提问于 2013-01-17 10:42:25
回答 1查看 2.2K关注 0票数 1

gcc通常将构建ID嵌入到共享对象中,以允许符号和共享对象本身被自动检索。该方案的文档如下:

http://fedoraproject.org/wiki/Releases/FeatureBuildId

我有一个想要分析的用户模式核心转储,根据上面的文章,我知道它很可能包含我关心的所有共享对象的构建in (总共几十个)。如果我可以从核心转储中提取构建ID,那么我就可以在我们的归档中找到正确的版本,并能够调试这个核心转储(以及未来的核心转储)。

核心转储来自另一台计算机,我无法访问该计算机,并且我不能信任该计算机上的用户提供有关该计算机上有哪些模块的附加信息。

所以..。你知道什么gdb命令或read-elf魔法能帮我找到这些构建ID吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-23 13:31:54

您可以使用elfutils中的eu-unstrip提取构建id

代码语言:javascript
运行
复制
$ eu-unstrip -n --core core-file
0x8048000+0x25d000 b7fada8ba917de74a6055647f3ac205dee1615c8@0x8048178 - - [exe]
0xb7790000+0x1000 da7bd9bbfe599f7e9b644d684db983c4b34d8f31@0xb77901ec . - linux-gate.so.1
0xb7771000+0x19000 242ae1f2965ed161f3715858d7792019963b57fd@0xb7771164 /lib/i686/cmov/libpthread.so.0 - libpthread.so.0
0xb7768000+0x9000 06a49519b1ede0f79596e4b0cd07d2beba43b2dc@0xb7768164 /lib/i686/cmov/librt.so.1 - librt.so.1
0xb7672000+0xf5000 9daf5aac9ccc9281f2805639c3f87731beae5548@0xb7672144 /usr/lib/libstdc++.so.6 - libstdc++.so.6
0xb764c000+0x26000 696d5fb148fe51609203903d470a8f85d458cd17@0xb764c164 /lib/i686/cmov/libm.so.6 - libm.so.6
0xb762e000+0x1e000 d2a7edbd5dafabb7bb90198eeb58013342c589f0@0xb762e104 /lib/libgcc_s.so.1 - libgcc_s.so.1
0xb74e7000+0x147000 2124040143ac9f7478cc16b474b1cfdfe2c45353@0xb74e7184 /lib/i686/cmov/libc.so.6 - libc.so.6
0xb7791000+0x1d000 5a6fc3cf12f68887cbf22da3a9785d00f7d91c41@0xb7791124 /lib/ld-linux.so.2 - ld-linux.so.2
票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14371372

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档