RFR: 8310228: Improve error reporting for uncaught native exceptions on Windows
Jorn Vernee
jvernee at openjdk.org
Wed Jun 21 12:32:37 UTC 2023
Prevents a stack overflow (or other fatal error) from occurring when handling an unknown exception. See JBS issue for full problem outline.
WRT implementation:
- I've refactored `Handle_FLT_Exception` to check the exception code on 64 bit Windows as well. It now returns a boolean indicating whether the exception was recognized and handled.
- For x86, I've created a new Uncaugh_Exception_Handler function which implements the uncaught exception handler. This new function replaces the previous use of `Handle_FLT_Exception` as uncaught exception handler. x86 also supports exception chaining through a previous exception handler stored in `prev_uef_handler`. But, on 64 bit windows this field is never set, so we don't need to try to execute the fallback handler on 64 bit. Hence, it seemed clearer to factor out that bit to a separate function. Both the x86 and 64 bit impls call the `handle_FLT_exception` function.
I've tested this patch locally on Windows x64, I will need some help testing this on Windows x86.
Testing: tier 1-4
-------------
Commit messages:
- Merge branch 'master' into UncaughtExWin
- remove uncaught exception string
- Improve reporting of uncaught native exceptions
- improve uncaught exception handling on Windows
Changes: https://git.openjdk.org/jdk/pull/14523/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=14523&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8310228
Stats: 164 lines in 3 files changed: 142 ins; 15 del; 7 mod
Patch: https://git.openjdk.org/jdk/pull/14523.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/14523/head:pull/14523
PR: https://git.openjdk.org/jdk/pull/14523
More information about the hotspot-runtime-dev
mailing list