我们提供了一个共享库,供客户用于集成到他们的产品中。
我们从客户那里得到了一个核心转储,通过查看info proc mappings
我可以看到加载的模块,并且thread apply all bt
我可以看到堆栈跟踪中有条目位于我们的库加载范围内。因此,我们的 lib 可能导致崩溃。但我们无权访问客户使用的可执行文件。
如果我们只有我们提供的共享库而不是主可执行文件,有没有办法在这个核心转储中获取符号?
我尝试使用 file 命令加载内核和库,反之亦然,但堆栈跟踪不显示任何符号。
互联网上的大多数示例似乎暗示您可以访问可执行文件本身以获得有意义的符号。如果我将共享库加载到 GDB 中,我可以获取它的符号吗?
其他细节:生产系统使用的 GCC 与我 PC 上安装的不同(旧得多)。我们有可用的库的未剥离版本,我们提供剥离的库。