首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用libunwind获取模块地址

使用libunwind获取模块地址
EN

Stack Overflow用户
提问于 2019-05-29 21:34:52
回答 1查看 115关注 0票数 0

我使用libunwind从堆栈帧中提取指令指针,如下所示:

代码语言:javascript
复制
unw_get_reg ( &cursor, UNW_REG_IP, &ip );

然而,这只给了我函数指针的动态地址。我想要接收模块中的静态地址,这样我就可以通过addr2line查询它们。

另一个线程当时没有收到回复。你知道如何获得这些信息吗?

问候

EN

回答 1

Stack Overflow用户

发布于 2020-01-26 20:18:31

假设静态地址指的是距函数所在模块的起始位置的偏移量,则可以使用dladdr(ip, info),其中info.dli_fbase会给出已加载模块的基地址。然后,(pc - info.dli_fbase)会给出此函数从模块开始处的偏移量。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56361894

复制
相关文章

相似问题

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