我使用qtcreator交叉编译了qt。调试工作正常,但是当我尝试介入(F11)在外部共享库(我的)中定义的函数时,我看到gdb挂起并最终失败并出现以下错误:
115 ^错误,msg ="回复包含无效的十六进制数字116"
烹饪请求115已经吃完(InferiorStopOk)。一个命令的两个响应?
可执行文件失败:回复包含无效的十六进制数字116
任何想法?
答案 0 :(得分:0)
可能是:
与通信协议无关的一般gdb错误
gdb通信协议实现中的gdb错误
gdb通信协议实现中的Qt Creator错误。
因为在任何情况下它都是一个错误,所以您需要在获得好的信息后才能输入错误报告。检查Qt Creator的调试器日志,看看它究竟发生的时间。然后,您可以尝试从gdb的命令行手动重现相同的命令流。如果你成功了,那么#1不太可能。您可以使用另一个IDE(比如Eclipse)来区分#2和#3,但请记住,其他IDE不太可能发出Qt Creator会发出的相同命令。
调试它的唯一可靠方法是在Qt Creator和gdb之间插入一个小程序,转储Qt creator发送的命令,然后在没有Qt Creator的情况下重放它们。然后,您需要解析响应并确定它们是否有效。如果它们是,那么#1和#2都不成立,它很可能是Qt Creator的错误,#3。
答案 1 :(得分:0)
'error,msg ='由GDB响应GDBserver消息生成。 Qt Creator与GDB的沟通不涉及。所以这是GDB和GDBserver之间的错误沟通。
这是一个合适的GDB服务器,还是该目标架构的GDB?
顺便说一句,人们不需要程序拦截Qt Creator发送给GDB的内容,它都列在调试器日志的左侧窗格中。
答案 2 :(得分:0)
我发现问题与使用“步入”(F11)功能有关。
令人费解的是,您可以避免此消息在库中切换断点并仅使用播放功能(F5)来调试库。
非常感谢您的回复。在集中解决实际问题之前,我做了很多测试。