-
Notifications
You must be signed in to change notification settings - Fork 4.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[ARM32] Exception filter failed to catch exception #5676
Comments
It looks like that I found the reason why it fails. Here is the code generated from JIT:
When CORINFO_HELP_TRHOW is called, PC will points to some instruction that corresponds to 00008C. However, the exception handling region covers only for [0046..008C)
Actually, this issue is already known and AMD64 and ARM64 codegen have a workaround. Unfortunately, it seems that this workaround is not applied to ARM32 codegen, yet. |
* Fix #4496 This commit revises legecy codegen to inserts a bkpt instruction if the current BB and next BB is not in the same exception handling region. This code is backported from ARM64 codegen. * Update ControlPcIsUnwound in UnwindManagedExceptionPassX * Enable only for ARM32 Enable the patch only for ARM32 in order to fix build break in other architecture.
It seems that exception filter does not work correctly on ARM32. Currently, running the following program results in unhandled exception error:
CoreCLR is expected to work as follows:
However, it currently shows the following output:
The text was updated successfully, but these errors were encountered: