【发布时间】:2017-09-26 23:19:35
【问题描述】:
我正在使用 alpine linux 将核心文件加载到 docker 容器内的 GDB 中。
最初我的 gdb 抱怨找不到二进制文件,然后我关注了这个讨论 gdb During startup program exited with code 127 并安装了 libc6-compat,即使我有一个 64 位 linux 并且我的二进制解释器是 64 位 [Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]
这确实有效,但现在我在 .so 文件中遇到了同样的错误。我可以看到 .so 文件位于 solib-search-path 上设置的路径中,但 gdb 没有加载任何库并抱怨没有这样的文件或目录。
二进制文件在库所在路径的生产主机上运行 我通过设置 solib-search-path 在开发主机上运行二进制文件
ldd 二进制表示未找到库,这是预期的,因为这是一个开发主机
【问题讨论】:
-
您遗漏了很多细节。二进制文件是否在 GDB 之外运行?图书馆在哪里?
readelf -d a.out的输出是什么?来自ldd a.out?
标签: c++ linux debugging gdb alpine