Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我使用 libunwind 从堆栈帧中提取指令指针,如下所示:
unw_get_reg ( &cursor, UNW_REG_IP, &ip );
但是,这只给了我函数指针的动态地址。我想接收模块中的静态地址,以便我可以通过 addr2line 查询它们。
当时另一个线程没有收到答案。你知道如何获得这些信息吗?
问候
假设静态地址是指从函数所在模块的开头偏移,您可以使用dladdr(ip, info)whereinfo.dli_fbase为您提供加载模块的基地址。然后(pc - info.dli_fbase)给你这个函数从模块开始的偏移量。
dladdr(ip, info)
info.dli_fbase
(pc - info.dli_fbase)