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

时间:2016-04-26 23:20:30

标签: c linux debugging gdb gdbserver

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

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"。

1 个答案:

答案 0 :(得分:1)

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

--target=arm-linux-gnueabihf

到目前为止,我能够逐步执行代码以及触发段错误。