This is a report on an elusive problem with Poly/ML on Cygwin on Vista that may 
be of use to others (and perhaps someone else can pin the problem down more 
closely or suggest a better solution?).

An executable pp-ml.exe written in Poly/ML using PolyML.export and gcc on 
Cygwin on Vista sometimes fails with a segmentation fault and a stack dump like 
this:

Exception: STATUS_ACCESS_VIOLATION at eip=610E384A
eax=1A75CE64 ebx=01186388 ecx=75F9A620 edx=77715CA4 esi=011863E0 edi=1AD5CE64
ebp=1AD5CD98 esp=1AD5CD60 
program=C:\cygwin\home\rda\bld\pp\OpenProofPower-2.9.1w2\src\pp-ml.exe, pid 
2968, thread unknown (0x218)
cs=001B ds=0023 es=0023 fs=003B gs=0000 ss=0023
Stack trace:
Frame     Function  Args
1AD5CD98  610E384A  (01186388, 1AD5CDD4, 610E3810, 01186388)
End of stack trace

The failure is probably happening in a call of PolyML.SaveState.saveChild and 
seems to be highly erratic: pp-ml job is just to load a state, compile a file 
of ML source and then save the resulting state; it has already been used to do 
that scores of times before it failed. It has not been known to fail on Windows 
XP. It appears to be happening because gcc creates binaries that are not 
flagged as "Terminal Server Aware". The following command fixes the problem:

        peflags --tsaware=true pp-ml.exe

There may be gcc options to set the flag, but I couldn't find them.

Regards,

Rob.


_______________________________________________
polyml mailing list
[email protected]
http://lists.inf.ed.ac.uk/mailman/listinfo/polyml

Reply via email to