如何使用 GDB 解析核心文件中函数的共享库 - 当没有加载符号时?

问题描述 投票:0回答:1

我有一个核心文件,其中并非所有共享库符号都可用,回溯如下所示:

#0  0x00007f63f04b19de in ?? ()
#1  0x00007f63f0cf4700 in ?? ()
#2  0x00007f63f7a216ea in start_thread () from /lib64/libpthread.so.0
#3  0x00007f63f512250f in clone () from /lib64/libc.so.6

我想检测框架

#1
(地址
0x00007f63f0cf4700
)的函数位于哪个共享库中。

info symbol
无法解决该问题,因为符号不可用。

我可以手动完成 - 运行

info sharedlibrary
并计算该函数属于哪个共享库范围,但这个解决方案非常麻烦。

有没有更简单的方法来实现这一目标?

c++ gdb shared-libraries debug-symbols
1个回答
0
投票

我想检测第1帧(地址0x00007f63f0cf4700)的函数位于哪个共享库中。

除了ssbssa提供的解决方案之外,您还可以使用

readelf -Wn core
并查找
NT_FILE
注释。

© www.soinside.com 2019 - 2024. All rights reserved.