尝试单步执行代码时 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 版本
- GNU gdbserver(crosstool-NG linaro-1.13.1-4.9-2014.09 - Linaro GCC
4.9-2014.09) 7.6.1-2013.10
主机上的 gdb(从源代码构建)版本
- GNU gdb (GDB) 7.7.1
- 此 GDB 配置为“--host=x86_64-unknown-linux-gnu --target=arm-none-eabi”。
看来我遇到的问题是由于编译主机 GDB 时目标不正确造成的。对于我正在使用的目标处理器,我需要将目标标志设置为
--target=arm-linux-gnueabihf
到目前为止,我能够单步执行我的代码并触发段错误。
当从我的主机 运行 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 版本
- GNU gdbserver(crosstool-NG linaro-1.13.1-4.9-2014.09 - Linaro GCC 4.9-2014.09) 7.6.1-2013.10
主机上的 gdb(从源代码构建)版本
- GNU gdb (GDB) 7.7.1
- 此 GDB 配置为“--host=x86_64-unknown-linux-gnu --target=arm-none-eabi”。
看来我遇到的问题是由于编译主机 GDB 时目标不正确造成的。对于我正在使用的目标处理器,我需要将目标标志设置为
--target=arm-linux-gnueabihf
到目前为止,我能够单步执行我的代码并触发段错误。