【发布时间】:2016-08-09 07:55:15
【问题描述】:
我在 Linux tutnix 3.13.0-30-generic #54-Ubuntu i686 i686 GNU/Linux 上使用 X-server。
在 X-server 上,我使用 schroot 更改根目录,然后在其上运行我的应用程序。
现在的问题是我试图在 X 服务器(比如远程机器)上运行 gdbserver(版本 6.7.1)和在 Ubuntu 机器(本地机器或 X 所在的机器)上运行 gdb(版本 7.7) -server 正在运行),但它不工作。
这是我迄今为止尝试过的:-
-
在远程机器上执行以下命令
- MY_Application &
- gdbserver localhost:8888 --attach process_id
-
在本地机器上执行以下命令
- gdb ./MY_Application
- (gdb)目标远程:8888
现在在本地机器上 gdb 正在显示这条消息
Could not load shared library symbols for 20 libraries, e.g. /usr/lib/libqt.so.3.
Use the "info sharedlibrary" command to see the complete listing.
Do you need "set solib-search-path" or "set sysroot"?
据了解,gdb 无法加载共享库,共有 20 个。因此,我无法找到这些共享库中存在的符号。
我尝试使用gdb 上的symbol-file 命令从本地计算机上的库文件中加载符号,但这会导致地址不匹配
所以我使用了下面的命令
- (gdb)set sysroot remote:/
但它再次显示错误消息
Could not open 'remote:/usr/local/davis/lib/usr/lib/libqt.so.3' as an executable file: Function not implemented
谁能告诉我我在这里做错了什么?如果有从共享库加载符号的替代解决方案,请提出建议。
附:两个 MY_Application 二进制文件是相同的。
【问题讨论】: