Bail second pass redirection after catch in thread abort on Unix (#72705)
authorJuan Hoyos <juan.hoyos@microsoft.com>
Tue, 26 Jul 2022 09:42:12 +0000 (02:42 -0700)
committerGitHub <noreply@github.com>
Tue, 26 Jul 2022 09:42:12 +0000 (02:42 -0700)
commitd9da50c97c8f8072828c0634c12992ffe278cd40
tree9f7cf9d76cc004af90c824a057ec03e5888b1de8
parent75476f9eedc35dbe8e65bba851e7a1fca851d7ca
Bail second pass redirection after catch in thread abort on Unix (#72705)

The redirection stub was never implemented, leading to crashes in scenarios like Debugger Function Evaluations. Instead of rethrowing the exception after the catch clause, this allows the ThreadAbortException to flow as any usual exception and hopefully surface through other points that call mechanisms like Thread::HandleThreadAbort. This is a behavior difference between Unix and non-Unix plaforms with some observable side effects, but Thread.Abort is not supported in core. Most commonly the debugger is the major scenario where ThreadAbort gets used, and this prevents the crash.
src/coreclr/vm/exceptionhandling.cpp