3

在谷歌搜索和阅读后,我通过串行线路设置了 kgdb,我可以进入调试器(通过 /proc/sysrq-trigger 停止内核)并从主机 gdb 连接,它是 ARM 工具链的一部分。

基本上我的开发板运行嵌入式 linux abd 我正在调试的驱动程序,我的 PC 有两个连接到板 - 串行和以太网(telnet 会话)。

将主机 gdb 连接到目标后,我不再能够对板进行 telnet,因为重现内存损坏的唯一方法是在板上应用一些用户应用程序配置。

是预期的还是我做错了什么,并且有一种方法可以使 IP 连接到目标GDB 会话?

4

1 回答 1

2

这是意料之中的。主要是当您连接到 KDB 时,您正在破坏(停止/冻结)内核,它会等待您说“开始”以再次运行内核或跟踪有问题的项目。

最好的办法是在您正在跟踪的 API/Funciton 上设置一个断点,然后“Go”,内核将运行,您将让您的 telnet/ssh 重新工作,一旦它命中 API,它就会中断进入调试器,但由于整个操作系统被冻结,您将再次丢失 Telnet 会话。

于 2012-12-19T11:04:39.847 回答