Re: Bug in i386_process_record?

Michael Snyder
2009-08-27T00:28:09Z

Michael Snyder wrote:
> Hui Zhu wrote:
>> On Wed, Aug 26, 2009 at 02:42, Eli Zaretskii<eliz@gnu.org> wrote:
>>>> From: Hui Zhu <teawater@gmail.com>
>>>> Date: Tue, 25 Aug 2009 13:02:44 +0800
>>>> Cc: msnyder@vmware.com, gdb-patches@sourceware.org
>>>>
>>>> It seems that the segment (It is not the section) registers in x86
>>>> protect mode is just help MMU to get the physical address. It's
>>>> transparent for the user level program.
>>> It's transparent if $es and $ds have the same value (which they
>>> usually do, AFAIK).
>>>
>>>> What do you think about remove this warning from this patch?
>>> I would indeed do that, if we find that $es and $ds have the same
>>> values. Assuming that someone who knows Linux better than I do
>>> confirms that these two registers hold the same selector when a normal
>>> application is running in user mode.
>>>
>> Thanks for remind me. We cannot get the value of each segment
>> register, but we can get each segment register point to. So if the
>> value of segment registers, it's means that the value of them is same.
>>
>> I add some code about it:
>> regcache_raw_read_unsigned (ir.regcache,
>> ir.regmap[X86_RECORD_ES_REGNUM],
>> &es);
>> regcache_raw_read_unsigned (ir.regcache,
>> ir.regmap[X86_RECORD_DS_REGNUM],
>> &ds);
>> if (ir.aflag && (es != ds))
>> {
>>
>> After that, we will not get the warning because the es is same with ds
>> in user level.
>>
>> What do you think about it?
>
> I think it is the best version I have seen so far.
> And it seems to follow the conclusions of the discussion.
> And I've tested it, and it seems to work.
>
> I would say wait until end-of-business Friday, and
> if there are no more comments, check it in!

Hui,

Do you think you could add some new tests to i386-reverse.exp,
to verify the string instructions?

Thanks,
Michael