Strange crash

Rein Klazes rklazes at xs4all.nl
Thu Apr 19 09:42:43 CDT 2001


On Wed, 18 Apr 2001 20:08:12 +0800, you wrote:

> "Rein Klazes" <rklazes at xs4all.nl> wrote:
> 
> [...]
> > | fldcw -2(%edx)
> > 
> > Load original CW. Now the exception happens, which indicates the PE
> > maskbit is cleared. I don't see how that can be. (you should check
> > that the disassembly in winedbg is the same as this code)
> 
> Attached disassembly is almost the same as assember generated by gcc
> (not counting garbage instead of jump table and fildl (gcc) vs. filds (winedbg))

The 8 instructions or so that I quoted would have been enough. And
those instructions seem to be assembled OK.
Btw did you ever check the value that was loaded in the CW, so the 16
bit value in -2(%edx) ?

> 
> Also I don't understand why winedbg prints dc->xformWorld2Vport.eM11 = 0.0,
> though  is always 1.0 in the log trace (added to
> X11DRV_PEN_SelectObject right before the GDI_ROUND call).
> Something wrong, but I don't know how proceed further yet.
> Any thoughts?

I would trust the trace, more then the debugger. Things can be really
tricky though with floating points. The only way to be 100% sure is to
to show the actual bit pattern. All zero's is 0.0. Anything else is
not, but a printf can still print 0.0.
If you manage to find how this eM11 is stored in memory (in winedbg
with something like x &(dc->xformWorld2Vport.eM11) then I can tell you
if there is something wrong with it.

 
Rein.
-- 
Rein Klazes
rklazes at xs4all.nl




More information about the wine-devel mailing list