halloween 发表于 2007-4-17 17:22:45

今天发现了SKYEYE的一个大BUG

通过GDB连接进行调试的时候无法设置寄存器。通过分析源代码,发现
static void
store_inferior_registers (int regno, unsigned char *memory)
{
        if (regno == -1 || regno == 0)
                for (regno = 0; regno < current_reg_type->num_regs; regno++)
                        current_reg_type->fetch_register (regno,
                                          &(memory));
        else
                current_reg_type->store_register (regno, &(memory));
}

store_inferior_registers 设置寄存器调用的竟然是fetch_register

这个就是维护人员CTRL+CCTRL+V的后果啊,呵呵

AnthonyLee 发表于 2007-4-17 23:12:03

Re: 今天发现了SKYEYE的一个大BUG

通过GDB连接进行调试的时候无法设置寄存器。通过分析源代码,发现
static void
store_inferior_registers (int regno, unsigned char *memory)
{
        if (regno == -1 || regno == 0)
                for (regno = 0; regno < current_reg_type->num_regs; regno++)
                        current_reg_type->fetch_register (regno,
                                          &(memory));
        else
                current_reg_type->store_register (regno, &(memory));
}

store_inferior_registers 设置寄存器调用的竟然是fetch_register

这个就是维护人员CTRL+CCTRL+V的后果啊,呵呵

Michael 兄近来有点事情,我帮着回应,别砸砖头。:):)

估计应该是疏忽...

另引用今天看到的一句话(源自 FreeBSD China 的 delphij):

我认为开源的一个非常重要的乐趣在于,在你找到问题的时候,你可以去改掉它,并且通过将这些变动反馈给开发团队来让更多人受益

halloween 发表于 2007-4-25 11:14:09

通过GDB连接进行调试的时候无法设置寄存器。通过分析源代码,发现
static void
store_inferior_registers (int regno, unsigned char *memory)
{
        if (regno == -1 || regno == 0)
                for (regno = 0; regno < current_reg_type->num_regs; regno++)
                        current_reg_type->fetch_register (regno,
                                          &(memory));
        else
                current_reg_type->store_register (regno, &(memory));
}

store_inferior_registers 设置寄存器调用的竟然是fetch_register

这个就是维护人员CTRL+CCTRL+V的后果啊,呵呵

Michael 兄近来有点事情,我帮着回应,别砸砖头。:):)

估计应该是疏忽...

另引用今天看到的一句话(源自 FreeBSD China 的 delphij):

我认为开源的一个非常重要的乐趣在于,在你找到问题的时候,你可以去改掉它,并且通过将这些变动反馈给开发团队来让更多人受益
李兄言之有理啊,呵呵

ksh 发表于 2007-5-2 12:02:59

Re: 今天发现了SKYEYE的一个大BUG

通过GDB连接进行调试的时候无法设置寄存器。通过分析源代码,发现
static void
store_inferior_registers (int regno, unsigned char *memory)
{
        if (regno == -1 || regno == 0)
                for (regno = 0; regno < current_reg_type->num_regs; regno++)
                        current_reg_type->fetch_register (regno,
                                          &(memory));
        else
                current_reg_type->store_register (regno, &(memory));
}

store_inferior_registers 设置寄存器调用的竟然是fetch_register

这个就是维护人员CTRL+CCTRL+V的后果啊,呵呵

感谢,可能是我写的时候疏忽了,最近比较忙。赫赫。。。
页: [1]
查看完整版本: 今天发现了SKYEYE的一个大BUG