Skip to content

GHC RTS VEH swallowing exceptions

On ticket #6079 (closed), a top level VEH handler was implemented which effectively means there is no uncaught exceptions for those it catches.

#13108 (closed) improved things a little by giving some basic info upon segfaults, but otherwise left everything as is.

Rather than trying to catch all exceptions, I think it would be more worthwhile to leave them uncaught, and let current & future tools have an eyes open approach to debugging.

If something needs to go in the place of the global handler, perhaps SetUnhandledExceptionFilter is of use?

VEH overrides all other exception handlers as far as I'm aware (C++, SEH, .NET), so trying to interop with any other code that wants to handle it's own exceptions won't work unless said code is also using VEH.

This is causing an issue for some code I've been working on, and I've documented similar to this bug report there also: https://gitlab.com/tim-m89/clr-haskell/issues/25#note_33960203

Trac metadata
Trac field Value
Version 8.0.1
Type Bug
TypeOfFailure RuntimeCrash
Priority normal
Resolution Unresolved
Component Runtime System
Test case
Differential revisions
BlockedBy
Related
Blocking
CC
Operating system
Architecture x86_64 (amd64)
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information