QT远程调试。走进共享图书馆
我已经使用qtcreator交叉编译了qt。调试工作正常,但当我尝试介入(F11)外部共享库(我的)中定义的函数时,我看到gdb挂起,最终失败,出现以下错误: 115^错误,msg=“Reply包含无效的十六进制数字116”QT远程调试。走进共享图书馆,qt,debugging,gdb,shared-libraries,cross-compiling,Qt,Debugging,Gdb,Shared Libraries,Cross Compiling,我已经使用qtcreator交叉编译了qt。调试工作正常,但当我尝试介入(F11)外部共享库(我的)中定义的函数时,我看到gdb挂起,最终失败,出现以下错误: 115^错误,msg=“Reply包含无效的十六进制数字116”令牌115的COOKIE已被吃掉(低于StopOK)。一个命令有两个响应可执行文件失败:回复包含无效的十六进制数字116 有什么想法吗?可能是: 与通信协议无关的通用gdb错误 gdb通信协议实现中的gdb错误 gdb通信协议实现中的Qt Creator错误 因为它在任何情况
令牌115的COOKIE已被吃掉(低于StopOK)。一个命令有两个响应
可执行文件失败:回复包含无效的十六进制数字116 有什么想法吗?可能是:
唯一可靠的调试方法是在Qt-Creator和gdb之间插入一个小程序,转储Qt-Creator发送的命令,然后在没有Qt-Creator的情况下重放它们。然后需要解析响应并确定它们是否有效。如果是,那么#1和#2都不成立,很可能是Qt Creator错误#3。GDB响应GDBserver消息生成“error,msg=”。Qt创建者与GDB的沟通不涉及。这是GDB和GDBserver之间的错误通信 这是一个合适的GDBserver,并且是该目标体系结构的GDB吗
顺便说一句,不需要一个程序来截获Qt Creator发送给GDB的内容,它都列在调试器日志的左窗格中。我发现问题与使用“step in”(F11)函数有关 令人费解的是,为了调试库,您可以通过切换库中的断点并简单地使用播放函数(F5)来避免此消息 谢谢你的回复。在关注真正的问题之前,我做了很多测试