我正在使用gdb连接到通过以太网用KGDB修补的2.6.31.13 linux内核,当我尝试分离调试器时,我得到了这个:
(gdb) quit
A debugging session is active.
Inferior 1 [Remote target] will be killed.
Quit anyway? (y or n) y
Bogus trace status reply from target: E22
之后会话仍然打开,我可以继续使用ctrl + d,调试器不会退出。
我在谷歌中搜索过该消息,结果只有5个(并且没有一个是有用的: - /)。
知道它可能是什么以及如何解决它?
答案 0 :(得分:2)
如果你清除了目标上的所有断点并且从最新的断点开始“C”(假设目标代码没有崩溃等等),我认为你会安全:在运行时,kgdb不会无论如何要跟你的gdb说话,因为如果我记得,它只会在等待命令时停止(在断点或异常中)处理链接。 快速序列中的几个Ctrl-C如果需要在gdb中获得控制权,那么“q”,就是这样。
这至少是我在调试ko时的经验...
我怀疑gdb是这么说的,因为它没有意识到它正在与kgdb而不是远程gdb服务器通信。我不认为kgdb接受杀死内核线程,因为调试器已经退出了,无论如何!
嗯,事后补充: 你在谈论kgdb'lite',现在是内核树的一部分,是吗?因为那是我唯一经历过的...... 6月3日PS:在我转移到2.6.32内核之前,我从未见过你提到的确切消息(作为我的dev和目标机器迁移到Lucid的一部分)。然后,出乎意料的是,我也碰到了它。在这里,它似乎发生在无望的情况下(比如在错过断点或单步后似乎失控的段错误或kgbd)。到目前为止我找到的唯一办法是在开发机器上启用ddd(gdb)并重新启动目标。但好消息是2.6.32中的kgdb似乎比Karmic(2.6.31)中的kgdb稳定得多。
答案 1 :(得分:0)
ctrl + z应该可以帮助你退出。