summaryrefslogtreecommitdiff
path: root/docs/users_guide/runtime_control.rst
diff options
context:
space:
mode:
authorBen Gamari <bgamari.foss@gmail.com>2017-09-26 14:34:58 -0400
committerBen Gamari <ben@smart-cactus.org>2017-09-26 15:39:18 -0400
commit1825cbdbdf08ed4bd6fd6794852596078953298a (patch)
tree5c76215fe2cfc87729b8c5f03fb8f5cd5277a9c2 /docs/users_guide/runtime_control.rst
parent7fb89e81aa26d546c468a780b57cbdd5ab189ec2 (diff)
downloadhaskell-1825cbdbdf08ed4bd6fd6794852596078953298a.tar.gz
Switch VEH to VCH and allow disabling of SEH completely.
Exception handling on Windows is unfortunately a bit complicated. But essentially the VEH Handlers we currently have are running too early. This was a problem as it ran so early it also swallowed C++ exceptions and other software exceptions which the system could have very well recovered from. So instead we use a sequence of chains to for the exception handlers to run as late as possible. You really can't get any later than this. Please read the comment in the patch for more details. I'm also providing a switch to allow people to turn off the exception handling entirely. In case it does present a problem with their code. Test Plan: ./validate Reviewers: austin, hvr, bgamari, erikd, simonmar Reviewed By: bgamari Subscribers: rwbarton, thomie GHC Trac Issues: #13911, #12110 Differential Revision: https://phabricator.haskell.org/D3911
Diffstat (limited to 'docs/users_guide/runtime_control.rst')
-rw-r--r--docs/users_guide/runtime_control.rst8
1 files changed, 8 insertions, 0 deletions
diff --git a/docs/users_guide/runtime_control.rst b/docs/users_guide/runtime_control.rst
index f141c323f6..7afc7262f8 100644
--- a/docs/users_guide/runtime_control.rst
+++ b/docs/users_guide/runtime_control.rst
@@ -220,6 +220,14 @@ Miscellaneous RTS options
capabilities. To disable the timer signal, use the ``-V0`` RTS
option (see above).
+.. rts-flag:: --install-seh-handlers=⟨yes|no⟩
+
+ If yes (the default), the RTS on Windows installs exception handlers to
+ catch unhandled exceptions using the Windows exception handling mechanism.
+ This option is primarily useful for when you are using the Haskell code as a
+ DLL, and don't want the RTS to ungracefully terminate your application on
+ erros such as segfaults.
+
.. rts-flag:: -xm ⟨address⟩
.. index::