server: Fix FPU registers in get_thread_context()

Petr Tesarik hat at tesarici.cz
Mon Mar 27 09:19:47 CST 2006


Dne 03/27/06 v 08:03:58 (-0700), Vitaliy Margolen napsal(a):
> Monday, March 27, 2006, 12:51:03 AM, Petr Tesarik wrote:
> 
> > Hi,
> 
> > this patch fixes a bug in get_thread_context(). Currently, this
> > routine assumes that all registers except debug registers are saved in
> thread->>context if it exists.  However, it does not include FPU
> > registers.
> 
> > IMO, we should not blindly assume which registers are present in
> thread->>context but look at ContextFlags.
> 
> > BTW I found this bug when winedbg stopped working with programs using
> > the FPU.
> 
> > ChangeLog:
> 
> > * Look at ContextFlags to see which registers are saved in
> >   thread->context.
> 
> Sorry this is not correct. Exception handler should get full context
> including FPU context. If we not saving it that's the problem on the
> other end.

I don't think so. A real 80386 without a math coprocessor does not
even have an FPU context.  I guess this is why CONTEXT_FULL does not
include CONTEXT_FLOATING_POINT.

Petr Tesarik



More information about the wine-devel mailing list