RFR: 8295974: jni_FatalError and Xcheck:jni warnings should print the native stack when there are no Java frames [v2]
Serguei Spitsyn
sspitsyn at openjdk.org
Thu Dec 22 19:50:53 UTC 2022
On Thu, 22 Dec 2022 08:03:26 GMT, David Holmes <dholmes at openjdk.org> wrote:
>> If a JNI Fatal error, or a JNI warning (from Xcheck:jni) is triggered in "top-level" native code (such as the launcher itself, or a freshly attached native thread) then there is no stack printed as there are no Java frames. This enhancement changes that so that we print the native stack, similarly to how error reporting does. We reuse VMError::print_native _stack to do this, but it could be argued this should be moved to a more general purpose utility class - suggestions welcome.
>>
>> Testing:
>> - manual fault injection (see bug report)
>> - tiers 1-4
>>
>> Thanks.
>
> David Holmes has updated the pull request incrementally with one additional commit since the last revision:
>
> Added a regression test
test/hotspot/jtreg/runtime/jni/nativeStack/libnativeStack.c line 95:
> 93: JNIEXPORT void JNICALL
> 94: Java_TestNativeStack_triggerJNIStackTrace
> 95: (JNIEnv *env, jclass cls, jboolean warning) {
There is a static variable "warning" and an argument with the same name.
The argument is never used.
My guess is that intention was to store the argument value in the static variable.
-------------
PR: https://git.openjdk.org/jdk/pull/11703
More information about the hotspot-dev
mailing list