RFR: 8311541: JavaThread::print_jni_stack doesn't support native stacks on all platforms

Aleksey Shipilev shade at openjdk.org
Tue Jul 18 18:28:41 UTC 2023


On Thu, 13 Jul 2023 07:41:00 GMT, David Holmes <dholmes at openjdk.org> wrote:

> [JDK-8295974](https://bugs.openjdk.org/browse/JDK-8295974) modified print_jni_stack to print the native stack when there are no Java frames. To do that it used VMError::print_native_stack, however that function is only for platforms that support stack-walking by following frames, on other platforms (i.e. Windows and AIX) we need to use os::platform_print_native_stack.
> 
> I'm not trying to consolidate the different versions of the stack printing code in this PR so that it is more easily backported to where [JDK-8295974](https://bugs.openjdk.org/browse/JDK-8295974) was.
> 
> The test has been updated to work on Windows (taking advantage of two other recent enhancements - see JBS for details).
> 
> Testing:
> - tiers 1-3 (sanity)
> -  TestNativeStack regression test
> 
> Thanks

Looks reasonable. Is `_WIN32` defined for Windows 64 as well? Consider a nit, if you have any other changes in the pipe for this PR. Ignore otherwise.

test/hotspot/jtreg/runtime/jni/nativeStack/libnativeStack.c line 110:

> 108:   printf("Native thread terminating\n");
> 109: 
> 110: #ifndef _WIN32

I'd flip it over to have `#ifdef` without negation, but that's minor.

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

Marked as reviewed by shade (Reviewer).

PR Review: https://git.openjdk.org/jdk/pull/14862#pullrequestreview-1535661069
PR Review Comment: https://git.openjdk.org/jdk/pull/14862#discussion_r1267152619



More information about the build-dev mailing list