linux – 使用gdbgdbserver远程调试共享库

linux – 使用gdbgdbserver远程调试共享库,第1张

概述我的问题是使用gdb / gdbserver远程调试嵌入式arm处理器上的应用程序. 我可以调试应用程序本身,但应用程序动态链接到实现内部通信协议的共享库.我希望能够在共享库函数中设置断点,以便尝试找出一些设备发现问题. 我已经确保库是用调试符号编译的并且由主机端的gdb加载,我可以在库中列出函数甚至设置断点但是当我尝试运行应用程序时,我收到一条错误消息的效果: 无法插入断点X. 访问内存地址时出 我的问题是使用gdb / gdbserver远程调试嵌入式arm处理器上的应用程序.

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

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

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

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

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

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

总结

以上是内存溢出为你收集整理的linux – 使用gdb / gdbserver远程调试共享库全部内容,希望文章能够帮你解决linux – 使用gdb / gdbserver远程调试共享库所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1024485.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存