"Rein Klazes" rklazes@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))
Moreover I cannot reproduce your failure (using gcc 2.95.4 and gnu as 2.11.90.0.1) If I set the variables to 0 and 0.0, no exception follows.
I'm completely at loss now. I'm debugging very complex application which actually consists of several simultaneously running processes. Perhaps interaction between processes leads to some unexpected behaviour.
Also I don't understand why winedbg prints dc->xformWorld2Vport.eM11 = 0.0, though dc->xformWorld2Vport.eM11 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?