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

时间:2016-11-16 02:42:42

标签: gdb record

我在运行的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机器上那样吗?

1 个答案:

答案 0 :(得分:0)

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

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