GDB远程调试失败,错误E01

时间:2016-09-25 21:48:31

标签: gdb arm cross-platform gdbserver

我使用此(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 ('$')

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

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

  

主机(在虚拟机中运行的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.`

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

  

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

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

通常正确的主机GDB包含在您用于为目标构建的交叉gcc中。因此,修复可能就像运行/path/to/cross-gdb而不是gdb一样简单。