[mono] Stop first pass exception handling when exiting the interpreter in llvmonly mode. (#50007)
* [mono] Add a FRAME_TYPE_INTERP_ENTRY frame type to the unwinder, it marks the location where execution transfers to the interpreter. * [mono] Stop first pass exception handling when exiting the interpreter in llvmonly mode. Otherwise, you could end up with the following situation: - [1] interpreted frame - [2] AOTed frame catching the exception - [3] interpreted frame catching the same exception The EH code would think frame [3] caught the exception, setting up interpreter state for resuming there, but frame [2] would catch the exception, so the exception state in the interpreter would not be cleared, leading to an assert in interp_entry (). Fixes https://github.com/dotnet/runtime/issues/47334.
Showing
想要评论请 注册 或 登录