GDB:附加属于共享库的源文件

时间:2014-03-22 06:55:43

标签: c debugging gdb

所有

我正在远程运行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”命令添加包含该文件的源目录,但仍然没有运气。

你能指出我程序中可能出现的错误吗?我可能缺少什么。

提前致谢。

1 个答案:

答案 0 :(得分:-1)

编译代码调试符号如“gcc -g”-g选项将在编译文件中包含调试信息。然后它会告诉你符号。