Because of this most tests fail to start with exploded builds.
CheckUnhandledOops overwrites any oops found on the stack, whenever a safepoint transition might happen.
It even changes the values of NULL oops. This causes the following code to fail:
// If the module is defined to the boot loader and an exploded build is being
// used, prepend <java.home>/modules/modules_name to the system boot class path.
if (loader == NULL && !ClassLoader::has_jrt_entry()) {
ClassLoader::add_to_exploded_build_list(module_symbol, CHECK);
}
because loader isn't NULL anymore.