#885: GHC doesn't work with Data Execution Prevention on Windows
-----------------------+----------------------------------------------------
Reporter: guest | Owner:
Type: bug | Status: new
Priority: normal | Milestone: _|_
Component: Compiler | Version: 6.4.2
Severity: major | Resolution:
Keywords: | Os: Windows
Difficulty: Unknown | Architecture: x86
-----------------------+----------------------------------------------------
Comment (by briansmith):
I don't pretend to know anything about the RTS. But, I can see that you
already made provisions for DEP by using VirtualAlloc and VirtualProtect.
When I run tests like fed001 which use foreign import wrapper, I can see
these are being used because I added some errorBelch calls into MBlock.c
and OSMem.c. The DEP exception never occurs for any of the ways except
"ghci".
When I run GHCi, I get "Loading package base-1.0 ... linking ... done" and
then the exception just as originally described. However, none of my
tracing statements are being printed before the exception. This indicates
to me that GHCi is allocating memory using a different mechanism from the
foriegn import wrapper code; i.e. not using the facilities from
MBlock.c/OSMem.c. So, it seems to me that "foreign import wrapper" is
okay, and GHCi is broken in a different way.
BTW, the DEP violation occurs under this "stack trace":
interactiveUI executes
initInterpBuffering session, which eventually executes
GHC.compileExpr session no_buf_cmd , which eventually executes
hvals <- (unsafeCoerce# hval) :: IO [HValue]
The exception occurs during unsafeCoerce# (as determined by placing simple
putStrLn statements before and after it).
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/885>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler_______________________________________________
Glasgow-haskell-bugs mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs