加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – 使用gdb / gdbserver远程调试共享库

发布时间:2020-12-14 00:44:10 所属栏目:Linux 来源:网络整理
导读:我的问题是使用gdb / gdbserver远程调试嵌入式arm处理器上的应用程序. 我可以调试应用程序本身,但应用程序动态链接到实现内部通信协议的共享库.我希望能够在共享库函数中设置断点,以便尝试找出一些设备发现问题. 我已经确保库是用调试符号编译的并且由主机端
我的问题是使用gdb / gdbserver远程调试嵌入式arm处理器上的应用程序.

我可以调试应用程序本身,但应用程序动态链接到实现内部通信协议的共享库.我希望能够在共享库函数中设置断点,以便尝试找出一些设备发现问题.

我已经确保库是用调试符号编译的并且由主机端的gdb加载,我可以在库中列出函数甚至设置断点但是当我尝试运行应用程序时,我收到一条错误消息的效果:

无法插入断点X.
访问内存地址时出错:输入/输出错误.

其中X是gdb中的断点号,是一个很小的地址,有效.
我在目标和主机上都使用新库,但是通过mount -o从nfs mount挂载目标上的newlib oldlib.
有没有人知道可能出现什么问题?
提前致谢.

解决方法

猜测:你在不正确的地址将共享库加载到主机GDB中.

不要将其显式加载到GDB中,而是使用“set stop-on-solib-event on”,等待库加载(信息共享将告诉您当前加载的库列表),然后设置断点.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读