由于之前有很多困惑,所以我在这里重新表述问题,删除旧问题。
我想从架构vmlinux
上的二进制文件中打印所有符号信息 -以及运行时间,包括我不知道的任何其他信息。power-pc
static
dynamic(.so)
kallsyms (module symbols)
我对actually I can not and its difficult to explain here why
使用GDB
、readelf
或/proc/kallsyms
获取.system.map
core file
我对知道如何GDB, readelf, objdump, kallsyms or systme.map
生成更感兴趣。他们使用哪些内核数据结构?他们更喜欢使用哪个库 -libelf
或libdwarf
据我了解:
- 用于
libelf/libdwarf
所有静态信息。 rld_map
需要为动态 .so 文件解析部分。- 对于
kallsyms
,我不确定如何处理将动态添加的 LKM 的符号信息。
考虑到上述情况,请建议我从头开始编写工具是明智的决定。我现在可以使用 libdwarf 获取所有函数名称及其地址的列表。
有人可以指导我找到一些最适合在上述情况下使用的源代码,或者可以针对上述场景进行一些修改,而不是从头开始编写一些东西,或者实际上是不可能的。(可能是 readelf/objdump/GDB 的一些片段)
如果需要,请要求澄清和更新。
谢谢 !!