qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] Re: [RESEND][PATCH] x86: Enhanced dump of segment regis


From: malc
Subject: Re: [Qemu-devel] Re: [RESEND][PATCH] x86: Enhanced dump of segment registers
Date: Wed, 11 Mar 2009 22:18:05 +0300 (MSK)

On Wed, 11 Mar 2009, Jamie Lokier wrote:

> Jan Kiszka wrote:
> > Jamie Lokier wrote:
> > > Jan Kiszka wrote:
> > >> FS =0000 00000000 00000000 00000000
> > > 
> > >> LDT=0000 00000000 00000000 00008200 DPL=0 LDT
> > > 
> > > Both are =0000, but different descriptors - is that right?
> > 
> > Good question. My patch only parses to descriptor cache content without
> > evaluating the selector. I guess that 0x00008200 is a leftover from a
> > previous, valid LDT descriptor.
> > 
> > > 
> > > Also I'm thinking the null descriptor doesn't need to show offset and
> > > size:
> > > 
> > > FS =0000
> > > 
> > > is enough?
> > 
> > Yes, makes sense. IOW: stop parsing if selector == 0. Will post an update.
> 
> Hmm.
> 
> Does a real x86 look at the selector value ever (except when loading
> it), or does it base all decisions on the descriptor cache?

The latter.

> 
> It's an accuracy of emulation thing, as you can legitimately put the
> CPU into states where the descriptor cache and selector values are
> inconsistent, and it does have a well-defined behaviour.
> 
> If a real x86 always uses the descriptor cache, presumably there
> shouldn't be a leftover value in it when LDT is loaded with 0, and
> perhaps choosing to show a null descriptor should depend on the
> descriptor cache entry rather than the selector value.
> 
> In real mode (and its siblings, unreal mode, big real mode etc.)
> segment register == 0 usually still has a non-null descriptor.
> 
> -- Jamie
> 
> 

-- 
mailto:address@hidden




reply via email to

[Prev in Thread] Current Thread [Next in Thread]