我使用libunwind从堆栈帧中提取指令指针,如下所示:
unw_get_reg ( &cursor, UNW_REG_IP, &ip );然而,这只给了我函数指针的动态地址。我想要接收模块中的静态地址,这样我就可以通过addr2line查询它们。
另一个线程当时没有收到回复。你知道如何获得这些信息吗?
问候
发布于 2020-01-26 20:18:31
假设静态地址指的是距函数所在模块的起始位置的偏移量,则可以使用dladdr(ip, info),其中info.dli_fbase会给出已加载模块的基地址。然后,(pc - info.dli_fbase)会给出此函数从模块开始处的偏移量。
https://stackoverflow.com/questions/56361894
复制相似问题