我在我的Arndale 5250板上编译了GDB 7.8进行本机调试,linaro 3.12(2013)。GDB被配置为“arm-linux-gnueabihf”,并使用静态链接库构建。它在黑板上工作得很好,但在“录制和重放模式”下。当遇到printf语句时,它会生成以下消息:
"Process record and replay target doesn't support ioctl request 0x7efff06c ()
( null)Process record: inferior program stopped.”
[process 2169] #1 stopped.
0x76f0f704 in ?? () from /lib/arm-linux-gnueabihf/libc.so.6当继续下去的时候,它不能再调试了。
(gdb) n
Cannot find bounds of current function我相信这是因为目标平台上缺少一些库。请注意,当我构建GDB时,我只将其exe文件复制到目标Arndale板上,而没有复制任何库。我认为与库的静态链接可以完成这项任务。您知道如何在ARM架构上运行进程记录和回放,就像我通常在x86机器上所做的那样吗?
发布于 2016-11-16 11:13:44
gdb的进程记录功能通过执行每条汇编指令并记录其效果来工作。当调用内核时,它还必须知道系统调用的效果。因为有许多可能的iocctl调用,所以ioctl在这里提出了一个独特的挑战。
从描述中可以看出,您的libc使用的是gdb不知道的ioctl。在这种情况下,除了在gdb中实现对调用支持之外,没有其他解决方案。
https://stackoverflow.com/questions/40623216
复制相似问题