通过具有身份验证的终端服务器连接gdb客户端

通过具有身份验证的终端服务器连接gdb客户端,gdb,remote-debugging,kgdb,Gdb,Remote Debugging,Kgdb,我正在尝试进行远程调试。我的GDB服务器按预期运行(在我的例子中,内核端是KGDB)。KGDB挂断良好,以便GDB客户端可以连接 我需要使用终端服务器和端口号连接GDB客户端,因为在实际情况下,我的设备是通过终端服务器连接的,需要用户名和密码才能进入 因此,只做目标远程终端服务器:端口并没有帮助连接,因为并没有提供用户名和密码的方法 如果我将设备直接与串行端口连接,并尝试使用target remote/dev/ttyS0,它将按预期工作 但我想调试更多通过终端服务器连接的设备。你能帮我解决这个问

我正在尝试进行远程调试。我的GDB服务器按预期运行(在我的例子中,内核端是KGDB)。KGDB挂断良好,以便GDB客户端可以连接

我需要使用终端服务器和端口号连接GDB客户端,因为在实际情况下,我的设备是通过终端服务器连接的,需要用户名和密码才能进入

因此,只做目标远程终端服务器:端口并没有帮助连接,因为并没有提供用户名和密码的方法

如果我将设备直接与串行端口连接,并尝试使用target remote/dev/ttyS0,它将按预期工作


但我想调试更多通过终端服务器连接的设备。你能帮我解决这个问题吗?我还尝试了命令target remote | expect_脚本(将尝试使用用户名和密码登录),但没有成功。建议我正确的方法。

它现在起作用了。我写了这样的脚本

!/usr/bin/expect 生成“telnet”172.26.26.18“3016”

应为“用户名:” 发送“示例\r” 应为“密码”: 发送“通过\r\n” 期望“身份验证完成”
交互

目标远程| expect_脚本
听起来是个不错的解决方案。expect脚本在协商连接之后,可能会有一个
interactive
语句。这就是你所拥有的吗?是的,这就是我写发送包的方式:$Hc-1#09…发送包:$Hc-1#09…超时。超时。超时。正在忽略数据包错误,正在继续。。。发送数据包:$qC#b4…发送数据包:$qC#b4…发送数据包:$qC#b4…发送数据包:$qC#b4…接收数据包:OK发送数据包:$qOffsets#4b…Nak发送数据包:$qOffsets#4b…接收的Ack数据包:对偏移查询的OK错误响应,OK(gdb)