所有
我正在远程运行GDB(主机上的客户端,目标上运行的gdbserver)。我想在共享库中设置一个断点。共享库是我运行GDB的路径的本地库。我看到调试器正在设置一个断点:
#此时未加载任何共享库。 (gdb)b openapiClientRegister 断点1在0x100211d4 (gdb)c 仍在进行中。
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”命令添加包含该文件的源目录,但仍然没有运气。
你能指出我程序中可能出现的错误吗?我可能缺少什么。
提前致谢。
答案 0 :(得分:-1)
编译代码调试符号如“gcc -g”-g选项将在编译文件中包含调试信息。然后它会告诉你符号。