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:56:49 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

This looks good in general but I've inlined a couple of questions.

src/hotspot/share/runtime/javaThread.cpp line 1689:

> 1687:       return;
> 1688:     }
> 1689:     frame f = os::current_frame();

Is the function `JavaThread::print_jni_stack()` to print current JavaThread only or it was initially designed to print any JavaThread?

-------------

PR: https://git.openjdk.org/jdk/pull/11703


More information about the hotspot-dev mailing list