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