无法在 gdb 中加载共享库

Cannot load shared libraries in gdb

我正尝试 运行 在 gdb 中应用,但似乎我的调试器有问题。我无法以我尝试过的所有方式加载共享库。

库存储在/usr/local/lib64,环境正常:

echo $LD_LIBRARY_PATH
/usr/local/lib64:/home/user/lib

当我在 gdb 中 运行 应用程序时,会发生以下情况:

(gdb) set solib-search-path /usr/local/lib64
(gdb) show solib-search-path The search path for loading non-absolute
shared library symbol files is /usr/local/lib64. 
(gdb) info sharedlibrary No shared libraries loaded at this time.

而且我无法设置任何断点来调试我的应用程序,但同时应用程序在 gdb 中 运行 正常并且正在从二进制文件中读取调试符号!

我想,这个问题与权限有关,但不知道它到底在哪里。

为避免任何误解,我应该注意到我的应用程序 运行 很好,而且我在访问共享库方面没有任何问题。

When I run appllication in gbd, the following happens:

您实际上还没有 运行 申请,所以 "no shared libraries loaded at this time" 是正确的并且 预期

您需要实际执行 GDB run 命令。

更新:

I can execute run command and that's a strange thing.

不,这并不奇怪。你没有问题,一切都按预期工作。

我猜你的真正的问题是你不能在你的应用程序使用的共享库中设置断点。 那个问题的解决方案是这样做:

gdb /path/to/app
(gdb) start

# Application stops at main.
# You can now set any breakpoint you want.
(gdb) break foo.c:123