QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1977|回复: 3

今天发现了SKYEYE的一个大BUG

[复制链接]
发表于 2007-4-17 17:22:45 | 显示全部楼层 |阅读模式
通过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[current_reg_type->register_byte (regno)]));
        else
                current_reg_type->store_register (regno, &(memory[current_reg_type->register_byte (regno)]));
}

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

这个就是维护人员CTRL+C  CTRL+V的后果啊,呵呵
发表于 2007-4-17 23:12:03 | 显示全部楼层

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

[quote:3486624b42="halloween"]通过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[current_reg_type->register_byte (regno)]));
        else
                current_reg_type->store_register (regno, &(memory[current_reg_type->register_byte (regno)]));
}

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

这个就是维护人员CTRL+C  CTRL+V的后果啊,呵呵[/quote]

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

估计应该是疏忽...

另引用今天看到的一句话(源自 FreeBSD China 的 delphij):
我认为开源的一个非常重要的乐趣在于,在你找到问题的时候,你可以去改掉它,并且通过将这些变动反馈给开发团队来让更多人受益
回复

使用道具 举报

 楼主| 发表于 2007-4-25 11:14:09 | 显示全部楼层
[quote:e064a7beec="AnthonyLee"][quote:e064a7beec="halloween"]通过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[current_reg_type->register_byte (regno)]));
        else
                current_reg_type->store_register (regno, &(memory[current_reg_type->register_byte (regno)]));
}

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

这个就是维护人员CTRL+C  CTRL+V的后果啊,呵呵[/quote]

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

估计应该是疏忽...

另引用今天看到的一句话(源自 FreeBSD China 的 delphij):
我认为开源的一个非常重要的乐趣在于,在你找到问题的时候,你可以去改掉它,并且通过将这些变动反馈给开发团队来让更多人受益
[/quote]李兄言之有理啊,呵呵
回复

使用道具 举报

发表于 2007-5-2 12:02:59 | 显示全部楼层

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

[quote:c6792f3a38="halloween"]通过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[current_reg_type->register_byte (regno)]));
        else
                current_reg_type->store_register (regno, &(memory[current_reg_type->register_byte (regno)]));
}

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

这个就是维护人员CTRL+C  CTRL+V的后果啊,呵呵[/quote]

感谢,可能是我写的时候疏忽了,最近比较忙。赫赫。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-23 07:22 , Processed in 0.062991 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表