我尝试在Ubuntu 14.04.2 - 3.16内核上使用KGDB。
Target在Ubuntu 14.04.2上运行3.16内核。主机使用3.16内核在Ububtu 14.04.2上运行。
目标正在等待远程gdb连接。
已启动我的主机并尝试连接目标..
目标机器的$gdb./vmlinux内核镜像文件。$ gdb>目标远程/dev/ttyS0
“在qsupported响应中无法识别项超时”。
不能继续下去。有没有人能在这上面说点小点子呢?
发布于 2016-03-05 02:38:23
在我的经验中,当调试站(GDB主机)和目标(SUT)之间的串行连接不能可靠地运行时,最常见的错误消息是“unrecognized item timeout in qsupported response”。通常的解决方案是做两件事。首先,使用minicom、setserial和sty等程序手动检查串行连接。(检查您的波特率是否匹配,字符似乎可以手动在两个系统之间传输)。不幸的是,根据我的经验,即使有正确的RTS/CTS硬件流控制软件狗,目标上的KDBG代理也不能很好地处理流控制。因此,手动测试看起来是有效的(手动测试没有真正的流量控制,但它确实证明了两端都有正确的波特率控制和完全的控制)。其次,根据我的经验,通常需要的最佳解决方案是将波特率降低到9600。(每个人都从最大值开始,或57600,或34K,或19200),但下降到9600。内核调试器发送/接收的数据很小,甚至串行控制台在调试情况下也不会生成大量数据。通过将波特率锁定到9600,您可以确保SUT串行kgdboc与目标保持一致,并且您看到的问题通常会消失。如果发现速度太慢,在9600下正常运行后,可以一步一步地提高速度(在两端),并找到正确工作的设置的最大串行速率。
https://stackoverflow.com/questions/31826374
复制相似问题