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
.
我使用这个 (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
.