RFR: 8295974: jni_FatalError and Xcheck:jni warnings should print the native stack when there are no Java frames
Coleen Phillimore
coleenp at openjdk.org
Tue Dec 20 23:07:48 UTC 2022
On Fri, 16 Dec 2022 07:07:06 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.
This looks like a nice improvement. Do you have a test for it, or do the existing Xcheck:jni tests exercise this? I'd prefer JavaThread::print_jni_stack() moved to VMError rather than VMError::print_native_stack moved to JavaThread.
-------------
Marked as reviewed by coleenp (Reviewer).
PR: https://git.openjdk.org/jdk/pull/11703
More information about the hotspot-dev
mailing list