无法使用 gdb 调试共享库

vta*_*ble 5 linux debugging gdb shared-libraries

当我使用 GDB 附加到进程时,我看到了该警告:

Reading symbols from /CloneFileSystem/lib/ld-uClibc.so.0...
(No debugging symbols found in /CloneFileSystem/lib/ld-uClibc.so.0)
warning: Unable to find dynamic linker breakpoint function.
GDB will be unable to debug shared library initializers
and track explicitly loaded dynamic code.
Run Code Online (Sandbox Code Playgroud)

即使我使用set sysroot /CloneFileSystem那里的所有库,那也没有帮助。

我的进程调用共享库中的函数以及该函数调用另一个共享库中的另一个函数。

例如 ProcessFunc-> Lib1Func -> Lib2Func

我想调试 Lib2Func,但是当我运行命令 b Lib2Func gdb 时,无法在库已加载的情况下设置断点

file myexe->interpreter /lib/ld-uClibc.so.0

当我info sharedlibrary在 GDB 中使用时,我无法获取 From 和 To 中的值(加载的地址为空)

小智 1

您可能想尝试使用 -g 选项重新编译库。它说找不到调试信息。如果您使用 gcc,-g 提供调试信息。这是我要检查的第一件事。如果图书馆很大,这可能需要一段时间。