GDB无法加载,因此文件和错误没有此类文件或目录

GDB failed to load so files and errors No such file or directory

本文关键字:文件 错误 加载 GDB      更新时间:2023-10-16

我将核心文件加载到带有Alpine Linux的Docker容器中。最初,我的GDB抱怨找不到二进制文件,然后我在使用代码127退出并安装了Libc6-compat的启动计划中遵循了此讨论GDB,即使我有一个64位Linux,我对二进制的解释器为64位[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]

实际上有效,但现在我会因.so文件而遇到相同的错误。我可以看到.so文件位于solib-search-path上的路径中,但GDB没有加载任何库,也没有抱怨任何此类文件或目录。

二进制运行在库中的生产主机上运行我通过设置Solib-Search-Path在开发主机上运行二进制文件

ldd二进制说明,找不到图书馆,因为这是一个开发主机

二进制运行在生产主机上,其中图书馆在路径中我正在开发主机上运行二进制的二进制主机,通过设置solib-search-path

您的问题就在这里。

solib-search-path gdb 的路径。

in 是否会影响二进制本身,该设置使用标准系统库路径,汇编的DT_RPATHLD_LIBRARY_PATH环境变量来搜索共享库。

通常,只有在分析来自其他一些主机的核心转储时,才应设置solib-search-path(GDB需要访问当生成核心转储时使用的确切库)。设置solib-search-path在运行本地二进制时绝不应该是ncessary -GDB可以通过询问运行时加载程序在哪里来自动推论库的位置。

ldd二进制文件说,找不到图书馆,因为这是一个开发主机

如果 ldd说了,那么当然您将无法运行二进制(外部GDB内部)。