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