C GDB:附加属于共享库的源文件
全部, 我在主机上运行GDB remotelyclient,在目标上运行gdbserver。我想在共享库中设置断点。共享库位于我运行GDB的路径的本地。我看到调试器正在设置断点: 此时未加载共享库。 gdb openapiClientRegister 0x100211d4处的断点1 gdb c 继续C GDB:附加属于共享库的源文件,c,debugging,gdb,C,Debugging,Gdb,全部, 我在主机上运行GDB remotelyclient,在目标上运行gdbserver。我想在共享库中设置断点。共享库位于我运行GDB的路径的本地。我看到调试器正在设置断点: 此时未加载共享库。 gdb openapiClientRegister 0x100211d4处的断点1 gdb c 继续 Do you need "set solib-search-path" or "set sysroot"? Breakpoint 1, 0x100211d4 in openapiClientReg
Do you need "set solib-search-path" or "set sysroot"?
Breakpoint 1, 0x100211d4 in openapiClientRegister@plt ()
(gdb) info shared
From To Syms Read Shared Object Library
No linux-vdso32.so.1
No /mnt/application/libproc_libs.so
No **/mnt/application/libopenclt.so**
0x0ff46260 0x0ff51b54 Yes (*) /lib/libpthread.so.0
0x0ff1a8ac 0x0ff1ec70 Yes (*) /lib/librt.so.1
0x0fef5aa8 0x0fef6adc Yes (*) /lib/libdl.so.2
0x0fd90df4 0x0fe8b064 Yes (*) /lib/libc.so.6
No /lib/ld.so.1
(*): Shared library is missing debugging information.
我可以看到库中有以粗体显示的调试信息。程序运行时,会命中断点。但是GDB无法单步执行代码,因为它找不到包含代码的文件。我尝试通过directory命令添加包含该文件的源目录,但仍然没有成功
你能指出我的程序中可能出现的错误吗?我可能会错过什么
提前感谢。编译代码调试符号,如gcc-g-g选项,将在编译文件中包含调试信息。然后它将向您显示符号。我进一步发现,问题在于GDB根本没有读取符号,这从上述帖子中共享的信息输出中可以明显看出。我忽略了这一点。我目前正在研究为什么GDB在共享库中没有加载符号