尝试单步执行代码时 gdbserver 锁定

gdbserver locking up when trying to step through code

当从我的主机 运行 gdb 向我的远程目标(通过 TCP/IP 连接)运行 gdb 服务器发送 step 命令时,我收到以下错误在目标上

ptrace: Input/output error.
input_interrupt, count = 1 c = 36 ('$')

此后目标没有任何反应 - 只是挂起。在主机的gdb上,显示如下

(gdb) step
warning: Remote failure reply: E01
Ignoring packet error, continuing...
Ignoring packet error, continuing...
Ignoring packet error, continuing...
Ignoring packet error, continuing...
Ignoring packet error, continuing...

这将无限期地持续下去。最终我不得不重新启动目标。 continue 工作正常并且能够在我指定的断点处触发。这个故障可能完全在 gdbserver 端还是与我的 gdb 配置有关?

目标上的 gdbserver 版本

主机上的 gdb(从源代码构建)版本

看来我遇到的问题是由于编译主机 GDB 时目标不正确造成的。对于我正在使用的目标处理器,我需要将目标标志设置为

--target=arm-linux-gnueabihf

到目前为止,我能够单步执行我的代码并触发段错误。