GDB记录进程不支持ARM上的ioctl请求

GDB记录进程不支持ARM上的ioctl请求,gdb,record,Gdb,Record,我在Arndale 5250板上编译了GDB 7.8以进行本机调试,linaro 3.12(2013)。GDB被配置为“ARMLinuxGnueAbiHF”,并使用静态链接库构建。 它在板上工作正常,但处于“录制和重播模式”。当遇到printf语句时,它会生成以下消息: "Process record and replay target doesn't support ioctl request 0x7efff06c () ( null)Process record: infer

我在Arndale 5250板上编译了GDB 7.8以进行本机调试,linaro 3.12(2013)。GDB被配置为“ARMLinuxGnueAbiHF”,并使用静态链接库构建。 它在板上工作正常,但处于“录制和重播模式”。当遇到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机器上通常做的那样吗?

gdb的进程记录功能通过执行每个汇编指令并记录其效果来工作。当调用内核时,它还必须知道系统调用的效果
ioctl
在这里提出了一个独特的挑战,因为有许多可能的
iocctl
调用


从描述来看,您的libc似乎正在使用gdb还不知道的
ioctl
。在这种情况下,除了在gdb中实现对该调用的支持之外,没有其他解决方案。

gdb的进程记录功能通过执行每个汇编指令并记录其效果来工作。当调用内核时,它还必须知道系统调用的效果
ioctl
在这里提出了一个独特的挑战,因为有许多可能的
iocctl
调用

从描述来看,您的libc似乎正在使用gdb还不知道的
ioctl
。在这种情况下,除了在gdb中实现对该调用的支持之外,没有其他解决方案