Re: Bug in i386_process_record?

Hui Zhu
2009-08-23T23:43:09Z

If I am right, this is from the old memory manager -- segment manager.
X86 is a old arch and support it.

Now, most of OS include Linux, they don't use this MM, they use page
manager that X86 support it too (X86 is crazy). So they set the value
of segment reg to 0.

For the gdb, the value of segment reg is not the really value.
cs 0x73 115
ss 0x7b 123
ds 0x7b 123
es 0x7b 123
fs 0x0 0
gs 0x33 51
I have tried some insn that use segment reg such as string ops insn.
I found that the value of this segment reg cannot affect anything.

And prec just support Linux now. I have move
"set_gdbarch_process_record (gdbarch, i386_process_record);" to
i386-linux-tdep.c.

This patch doesn't add any more thing, just fix the bug. And this bug
seems affect a lot of program (for example, Oza's fp example). I
suggest let it in first. After that, we can find a good way to handle
the segment reg better.

What do you think about it?

Thanks,
Hui

On Mon, Aug 24, 2009 at 02:24, Eli Zaretskii <eliz@gnu.org> wrote:
>
> > From: Hui Zhu <teawater@gmail.com>
> > Date: Sun, 23 Aug 2009 12:29:33 +0800
> > Cc: gdb-patches ml <gdb-patches@sourceware.org>
> >
> > read_register (I386_ES_REGNUM)
> > This value is not the value of ES.  This is number of TLB.
>
> On what OS?