KGDB,远程连接错误

KGDB,远程连接错误,gdb,kgdb,Gdb,Kgdb,我是KGDB的新手,我从主机连接目标时遇到问题,出现以下错误。 (gdb) target remote /dev/ttyUSB0 Remote debugging using /dev/ttyUSB0 Ignoring packet error, continuing... warning: unrecognized item "swreak" in "qSupported" response warning: unrecognized item "ReloInsn" in "qSupporte

我是KGDB的新手,我从主机连接目标时遇到问题,出现以下错误。 (gdb) target remote /dev/ttyUSB0 Remote debugging using /dev/ttyUSB0 Ignoring packet error, continuing... warning: unrecognized item "swreak" in "qSupported" response warning: unrecognized item "ReloInsn" in "qSupported" response warning: unrecognized item "QTread' [3]kdb> " in "qSupported" response Bogus trace status reply from target: qTStatus ... 确保串行连接在两个方向上都工作。您可以使用:

[Host] cat /dev/ttyUSB0
[Target] echo 'from TARGET to HOST' > /dev/ttyS0

[Target] cat /dev/ttyS0
[Host] echo 'from HOST to TARGET' > /dev/ttyUSB0
您应该可以看到机器两侧的消息。如果没有,还有 电缆或驱动程序可能有问题

编译内核 启用KGDB*、KGDB_串行*、KGDB_USB*、调试信息、调试信息4、, 内核配置中的MAGIC_SYSRQ。在目标上编译并安装

这里的主要目的是启用KGDB功能并保留调试 vmlinux中的信息

代理代理设置 代理代理充当目标串行端口的代理。它分裂了 用于多路复用的串行端口。一个用于主控制台I/O,另一个用于 其他用于GDB会话。因此,我们可以同时处理这两个问题。你 应在主机上运行代理代理

git clone http://git.kernel.org/pub/scm/utils/kernel/kgdb/agent-proxy.git
cd agent-proxy ; make
./agent-proxy 5550^5551 0 /dev/ttyUSB0,115200
这将重定向:

  • 目标控制台到主机:5550
  • 目标到主机的kgdb侦听端口:5551
开始调试 首先,打开主控制台:

[Host] telnet localhost 5550
通过以下方式进入kdb模式:

[Target] echo ttyS0,115200 > /sys/module/kgdboc/parameters/kgdboc
[Target] dmesg | tail
(您应该看到KGDB:Registered I/O驱动程序kgdboc,否则 (失败)

# 当我在目标任务中键入kgdb时,它将获得错误,因为权限被拒绝,如下所示

[3]kdb> kgdb diag: -22: Permission denied [3] kdb>kgdb 诊断:-22:权限被拒绝 …我希望您能分步给出清楚的答案…,提前谢谢

diag: -22: Permission denied
该错误意味着默认情况下,内核会访问调试器函数。要解锁调试器,需要执行以下命令:

echo 1>/sys/module/kdb/parameters/cmd_enable

或添加内核启动参数:

kdb.cmd_enable=1


更多信息

请正确设置您的问题格式,这样可以增加可读性: [3]kdb> kgdb diag: -22: Permission denied
diag: -22: Permission denied