首页 文章

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

提问于
浏览
1

从运行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 回答

  • 1

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

    --target=arm-linux-gnueabihf

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

相关问题