GDB 远程调试失败,出现错误 E01

GDB remote debugging fails with error E01

我使用这个 (http://cs.baylor.edu/~donahoo/tools/gdb/tutorial.html) 指南来了解 GDB 的工作原理。 编译代码并将其上传到我的嵌入式 linux arm 平台后,我使用远程连接来连接目标上的 gdbserver:

目标:

root@zedboard-zynq7:/Software# gdbserver HOST:1234 broken
Process broken created; pid = 1103
Listening on port 1234
Remote debugging from host 192.168.178.32

主机(Ubuntu 14.04 运行 在虚拟机中):

Remote debugging using 192.168.178.33:1234
warning: A handler for the OS ABI "GNU/Linux" is not built into this   
configuration of GDB.  Attempting to continue with the default arm settings.

Cannot access memory at address 0x0
0x43330d40 in ?? ()
(gdb) 

我把断点设置在第43行,继续程序直到断点处停止:

(gdb) b 43
Breakpoint 1 at 0x8b68: file broken.cpp, line 43.
(gdb) continue
Continuing.

Breakpoint 1, main () at broken.cpp:43
43    double seriesValue = ComputeSeriesValue(x, n);
(gdb) 

但是在我的主机上调用一个步骤后,我得到了这个错误: 主持人:

warning: Remote failure reply: E01
Ignoring packet error, continuing...

目标:

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

这是什么意思,我该如何解决?

感谢您的帮助。

Host (Ubuntu 14.04 running in a virtual machine):

Remote debugging using 192.168.178.33:1234
warning: A handler for the OS ABI "GNU/Linux" is not built into this   
configuration of GDB.  Attempting to continue with the default arm settings.`

这表示您的(主机)GDB 尚未构建为支持您要调试的目标。

What does it mean and how can I fix it?

您需要获得不同版本的(主机)GDB,或者使用正确的 --target 设置自行构建。

通常一个正确的主机 GDB 包含在您用来为您的目标构建的 cross-gcc 中。所以修复可能很简单 运行 /path/to/cross-gdb 而不是 gdb.