Fix Win64 exception propagation in NativeCallable methods (#33653)
authorJan Vorlicek <janvorli@microsoft.com>
Tue, 17 Mar 2020 05:34:35 +0000 (06:34 +0100)
committerGitHub <noreply@github.com>
Tue, 17 Mar 2020 05:34:35 +0000 (22:34 -0700)
commit737e35e7c37fd9b4470e738c20285465d0db8e4d
treef55fd4a253c02ae6f92a5bc682a6bf671bbe6286
parentbedc8d505aa4c42d22914ffb811d7224d871dec7
Fix Win64 exception propagation in NativeCallable methods (#33653)

A recent change has removed the UMThunkStub usage for native callable
methods. That has broken handling of exceptions propagated from the
managed native callable method into the native caller in case there were
explicit frames below the native frame, like during the GC stress 3.

This change fixes it by unwinding the explicit frames upto the native
frame during the 2nd pass of exception handling when exception unwinding
passes through the frame of a native callable method and isn't handled
there.
src/coreclr/src/vm/exceptionhandling.cpp