-
Bug
-
Resolution: Duplicate
-
P4
-
13
-
windows
On Windows, for "signal handling" to work, we need to set up __try/__except clauses in a frame above the code triggering signals. Those clauses then should redirect to the hotspot signal handler function.
In the hotspot, that is done at every entry point and at the start of a thread. This is missing in gtest. Therefore simple functions like "os::is_readable_pointer()" will cause instead the generic gtest crash handler to execute and mark the test as failed.
This can be reproduced easily on 32bit windows in gtests by calling os::is_readable_pointer() with an unmapped pointer. However, weirdly enough it works for 64bit windows. It is not clear why. One possibility is that a VectoredException handler is installed somewhere. Needs investigating.
In the hotspot, that is done at every entry point and at the start of a thread. This is missing in gtest. Therefore simple functions like "os::is_readable_pointer()" will cause instead the generic gtest crash handler to execute and mark the test as failed.
This can be reproduced easily on 32bit windows in gtests by calling os::is_readable_pointer() with an unmapped pointer. However, weirdly enough it works for 64bit windows. It is not clear why. One possibility is that a VectoredException handler is installed somewhere. Needs investigating.
- duplicates
-
JDK-8185734 [Windows] Structured Exception Catcher missing around gtest execution
- Resolved