我在运行的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机器上那样吗?
答案 0 :(得分:0)
gdb的进程记录功能通过执行每个汇编指令并记录其效果来工作。当调用内核时,它还必须知道系统调用的效果。 ioctl
在这里提出了一个独特的挑战,因为有很多可能的iocctl
来电。
从描述中听起来好像你的libc正在使用gdb还不知道的ioctl
。在这种情况下,除了在gdb中实现对该调用的支持之外,没有其他解决方案。