小编Sor*_*puc的帖子

我的C代码如何在运行时找到与地址对应的符号(在Linux中)?

给定函数或变量运行时地址,我的代码需要找出名称,如果是变量,则键入符号的信息.或至少提供足够的信息,以便以后离线提取名称(和类型信息).

这是Linux代码,假设调试信息可用.

我试着研究ELF文件格式,binutils以及除了主题之外的所有内容都是巨大的,所以我希望有人可以帮我缩小范围.

我可以看到以下类型的解决方案:

  • 找到当前加载到内存中的模块的代码/数据段的范围 - 怎么做?将地址的模块和段名称和偏移量保存在其段中.离线然后使用binutils在模块的调试信息中找到符号 - 再次,如何做?

  • 使用一些我不知道的API /系统服务在运行时找到符号和信息 - 如何?

先感谢您.

c linux elf debug-symbols binutils

4
推荐指数
2
解决办法
2234
查看次数

标签 统计

binutils ×1

c ×1

debug-symbols ×1

elf ×1

linux ×1