【发布时间】:2016-06-05 12:34:24
【问题描述】:
我想调试一个由 Main 调用的 SharedLib。我有 SharedLib 和 Main 的来源。我使用选项–g3 编译和链接 Main 和 SharedLib。变量 PATH 和 LD_LIBRARY_PATH 包括 /PathToSharedLib。我在 NNN 的 b FileOfSharedLib.c 中设置了一个断点。
(gdb) file /PathToMain/Main
Reading symbols from /PathToMain/Main...done.
(gdb) set directories /PathToSourceOfSharedLib
(gdb) set solib-search-path /PathToSharedLib
(gdb) sharedlibrary SharedLib
No loaded shared libraries match the pattern `SharedLib`
(gdb) b FileOfSharedLib.c:NNN
No source file named FileOfSharedLib.c.
Make breakpoint pending on future shared library load? (y or [n]) y
(gdb) run
它永远不会在 Main 多次调用的断点处停止。我通过 SharedLib 日志中的 printf 语句看到它。看起来gdb没有考虑SharedLib。
我检查了 SharedLib 和 FileOfSharedLib.c:
(gdb) file /PathToSharedLib/SharedLib
Reading symbols from /PathToSharedLib/SharedLibl...done.
(gdb) b FileOfSharedLib.c:123
Breakpoint 1 at 0x43d7f: file FileOfSharedLib.c, line 123.
(gdb)
我正在运行带有 gcc 4.8.4 和 gdb 7.7.1 的 Ubuntu 14.04.3 LTS(GNU/Linux 3.13.0-66-generic i686)。
【问题讨论】:
标签: gdb shared-libraries