Debugging segmentation faults in the JVM on linux-powerpc
Thomas Stüfe
thomas.stuefe at gmail.com
Sun Jun 11 06:45:36 UTC 2017
Hi John Paul,
I'll take a look at it, I believe the final SafeFetch implementation for
zero was last done by me: https://bugs.openjdk.java.net/browse/JDK-8076185 .
SafeFetch is used to load data from a potentially unmapped address, mainly
used in error reporting. If that load triggers a segfault, that fault is
catched and the function returns a special value to indicate the address
was unmapped.
Its function is in the debug build tested at VM startup, which is the
segfault you are seeing. If it were to work correctly, signal handler would
recognize the segfault to be originating from a safefetch call and not
crash but return the mentioned special value.
On almost all platforms this is implemented via stub assembler but as zero
aims to be pure C we did implement this using posix setjmp. I'll take a
look at why this stopped working.
In the meantime, as a workaround just comment out the calls to
test_safefetch32() and test_safefetchN() in StubRoutines::initialize2().
Kind Regards, Thomas
On Sun, Jun 11, 2017 at 1:02 AM, John Paul Adrian Glaubitz <
glaubitz at physik.fu-berlin.de> wrote:
> And more:
>
> (sid-powerpc-sbuild)root at kapitsa:/build/openjdk-9-fz188x/openjdk-9-9~b170#
> gdb --args /build/openjdk-9-fz188x/openjdk-9-9~b170/build/jdk/bin/jmod
> -J-XX:+UseSerialGC -J-Xms32M -J-Xmx512M -J-XX:TieredStopAtLevel=1 create
> --module-version 9-Debian --target-platform 'linux-ppc' --module-path
> /build/openjdk-9-fz188x/openjdk-9-9~b170/build/images/jmods --exclude
> '**{_the.*,_*.marker,*.diz,*.debuginfo,*.dSYM/**,*.dSYM,*.pdb,*.map}'
> --libs
> /build/openjdk-9-fz188x/openjdk-9-9~b170/build/support/modules_libs/java.management
> --class-path
> /build/openjdk-9-fz188x/openjdk-9-9~b170/build/jdk/modules/java.management
> --legal-notices
> "/build/openjdk-9-fz188x/openjdk-9-9~b170/build/
> support/modules_legal/java.base" /build/openjdk-9-fz188x/
> openjdk-9-9~b170/build/support/jmods/java.management.jmod
> GNU gdb (Debian 7.12-6) 7.12.0.20161007-git
> Copyright (C) 2016 Free Software Foundation, Inc.
> License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.
> html>
> This is free software: you are free to change and redistribute it.
> There is NO WARRANTY, to the extent permitted by law. Type "show copying"
> and "show warranty" for details.
> This GDB was configured as "powerpc-linux-gnu".
> Type "show configuration" for configuration details.
> For bug reporting instructions, please see:
> <http://www.gnu.org/software/gdb/bugs/>.
> Find the GDB manual and other documentation resources online at:
> <http://www.gnu.org/software/gdb/documentation/>.
> For help, type "help".
> Type "apropos word" to search for commands related to "word"...
> Reading symbols from /build/openjdk-9-fz188x/openjdk-9-9~b170/build/jdk/bin/jmod...Reading
> symbols from
> /build/openjdk-9-fz188x/openjdk-9-9~b170/build/jdk/
> bin/jmod.debuginfo...done.
> done.
> (gdb) r
> Starting program: /build/openjdk-9-fz188x/openjdk-9-9~b170/build/jdk/bin/jmod
> -J-XX:+UseSerialGC -J-Xms32M -J-Xmx512M -J-XX:TieredStopAtLevel=1 create
> --module-version 9-Debian --target-platform linux-ppc --module-path
> /build/openjdk-9-fz188x/openjdk-9-9\~b170/build/images/jmods --exclude
> \*\*\{_the.\*,_\*.marker,\*.diz,\*.debuginfo,\*.dSYM/\*\*,\*.dSYM,\*.pdb,\*.map\}
> --libs
> /build/openjdk-9-fz188x/openjdk-9-9\~b170/build/support/modules_libs/java.management
> --class-path
> /build/openjdk-9-fz188x/openjdk-9-9\~b170/build/jdk/modules/java.management
> --legal-notices
> /build/openjdk-9-fz188x/openjdk-9-9\~b170/build/
> support/modules_legal/java.base /build/openjdk-9-fz188x/
> openjdk-9-9\~b170/build/support/jmods/java.management.jmod
> [Thread debugging using libthread_db enabled]
> Using host libthread_db library "/lib/powerpc-linux-gnu/
> libthread_db.so.1".
> [New Thread 0xf7f9f460 (LWP 22075)]
>
> Thread 2 "jmod" received signal SIGSEGV, Segmentation fault.
> [Switching to Thread 0xf7f9f460 (LWP 22075)]
> StubGenerator::SafeFetch32 (adr=0xabc, errValue=2748) at
> ./src/hotspot/src/cpu/zero/vm/stubGenerator_zero.cpp:211
> 211 value = *adr;
> (gdb) si
> signalHandler (sig=11, info=0xf7f9d9c0, uc=0xf7f9da40) at
> ./src/hotspot/src/os/linux/vm/os_linux.cpp:4229
> 4229 void signalHandler(int sig, siginfo_t* info, void* uc) {
> (gdb) bt
> #0 signalHandler (sig=11, info=0xf7f9d9c0, uc=0xf7f9da40) at
> ./src/hotspot/src/os/linux/vm/os_linux.cpp:4229
> #1 <signal handler called>
> #2 StubGenerator::SafeFetch32 (adr=0xabc, errValue=2748) at
> ./src/hotspot/src/cpu/zero/vm/stubGenerator_zero.cpp:211
> #3 0x0f9c6c0c in SafeFetch32 (errValue=2748, adr=0xabc) at
> ./src/hotspot/src/share/vm/runtime/stubRoutines.hpp:464
> #4 test_safefetch32 () at ./src/hotspot/src/share/vm/
> runtime/stubRoutines.cpp:243
> #5 StubRoutines::initialize2 () at ./src/hotspot/src/share/vm/
> runtime/stubRoutines.cpp:364
> #6 0x0f9c7544 in stubRoutines_init2 () at ./src/hotspot/src/share/vm/
> runtime/stubRoutines.cpp:373
> #7 0x0f4f04a0 in init_globals () at ./src/hotspot/src/share/vm/
> runtime/init.cpp:143
> #8 0x0fa115e8 in Threads::create_vm (args=args at entry=0xf7f9ed3c,
> canTryAgain=canTryAgain at entry=0xf7f9ecd0) at ./src/hotspot/src/share/vm/
> runtime/thread.cpp:3630
> #9 0x0f56da68 in JNI_CreateJavaVM_inner (args=0xf7f9ed3c,
> penv=0xf7f9ed38, vm=0xf7f9ed34) at ./src/hotspot/src/share/vm/
> prims/jni.cpp:3937
> #10 JNI_CreateJavaVM (vm=vm at entry=0xf7f9ed34, penv=penv at entry=0xf7f9ed38,
> args=args at entry=0xf7f9ed3c) at ./src/hotspot/src/share/vm/
> prims/jni.cpp:4032
> #11 0x0ff244cc in InitializeJVM (ifn=<synthetic pointer>, penv=0xf7f9ed38,
> pvm=0xf7f9ed34) at ./src/jdk/src/java.base/share/native/libjli/java.c:1481
> #12 JavaMain (_args=<optimized out>) at ./src/jdk/src/java.base/share/
> native/libjli/java.c:408
> #13 0x0ff28aa0 in call_continuation (_args=<optimized out>) at
> ./src/jdk/src/java.base/unix/native/libjli/java_md_solinux.c:895
> #14 0x0ff67500 in start_thread () from /lib/powerpc-linux-gnu/
> libpthread.so.0
> #15 0x0fe239b0 in clone () from /lib/powerpc-linux-gnu/libc.so.6
> (gdb) n
> 4230 assert(info != NULL && uc != NULL, "it must be old kernel");
> (gdb) n
> 4229 void signalHandler(int sig, siginfo_t* info, void* uc) {
> (gdb) n
> 4230 assert(info != NULL && uc != NULL, "it must be old kernel");
> (gdb) n
> 4231 int orig_errno = errno; // Preserve errno value over signal
> handler.
> (gdb) n
> 4232 JVM_handle_linux_signal(sig, info, uc, true);
> (gdb) n
> 4231 int orig_errno = errno; // Preserve errno value over signal
> handler.
> (gdb) n
> 4232 JVM_handle_linux_signal(sig, info, uc, true);
> (gdb) n
>
> Thread 2 "jmod" received signal SIGSEGV, Segmentation fault.
> StubGenerator::SafeFetchN (adr=0xabc, errValue=-553787651) at
> ./src/hotspot/src/cpu/zero/vm/stubGenerator_zero.cpp:232
> 232 value = *adr;
> (gdb) n
> signalHandler (sig=11, info=0xf7f9d9c0, uc=0xf7f9da40) at
> ./src/hotspot/src/os/linux/vm/os_linux.cpp:4229
> 4229 void signalHandler(int sig, siginfo_t* info, void* uc) {
> (gdb) n
> 4230 assert(info != NULL && uc != NULL, "it must be old kernel");
> (gdb) n
> 4229 void signalHandler(int sig, siginfo_t* info, void* uc) {
> (gdb) n
> 4230 assert(info != NULL && uc != NULL, "it must be old kernel");
> (gdb) n
> 4231 int orig_errno = errno; // Preserve errno value over signal
> handler.
> (gdb) n
> 4232 JVM_handle_linux_signal(sig, info, uc, true);
> (gdb) n
> 4231 int orig_errno = errno; // Preserve errno value over signal
> handler.
> (gdb) n
> 4232 JVM_handle_linux_signal(sig, info, uc, true);
> (gdb) n
> [New Thread 0xf55bf460 (LWP 22078)]
> [New Thread 0xf53ff460 (LWP 22079)]
> [New Thread 0xf50ff460 (LWP 22080)]
> [New Thread 0xf4dff460 (LWP 22081)]
> [New Thread 0xf4aff460 (LWP 22082)]
> [New Thread 0xf45ff460 (LWP 22083)]
> [New Thread 0xf447f460 (LWP 22084)]
>
> Thread 2 "jmod" received signal SIGSEGV, Segmentation fault.
> Java_java_util_zip_Deflater_deflateBytes (env=0xf7d0f460,
> this=0xf7f9e4e8, addr=<optimized out>, b=0xf7f9e4dc, off=<optimized out>,
> len=512, flush=0) at
> ./src/jdk/src/java.base/share/native/libzip/Deflater.c:199
> 199 strm->next_in = (Bytef *) (in_buf + this_off);
> (gdb) bt
> #0 Java_java_util_zip_Deflater_deflateBytes (env=0xf7d0f460,
> this=0xf7f9e4e8, addr=<optimized out>, b=0xf7f9e4dc, off=<optimized out>,
> len=512, flush=0) at
> ./src/jdk/src/java.base/share/native/libzip/Deflater.c:199
> #1 0x0fb002d0 in ffi_call_SYSV () from /build/openjdk-9-fz188x/
> openjdk-9-9~b170/build/jdk/lib/server/libjvm.so
> #2 0x0faff2f4 in ffi_call () from /build/openjdk-9-fz188x/
> openjdk-9-9~b170/build/jdk/lib/server/libjvm.so
> #3 0x0f2a7dfc in CppInterpreter::native_entry (method=<optimized out>,
> UNUSED=<optimized out>, __the_thread__=0xf7d0f308) at
> ./src/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp:372
> #4 0x0f2a412c in ZeroEntry::invoke (__the_thread__=0xf7d0f308,
> method=method at entry=0xf4120f68, this=<optimized out>) at
> ./src/hotspot/src/cpu/zero/vm/entry_zero.hpp:59
> #5 CppInterpreter::invoke_method (method=method at entry=0xf4120f68,
> entry_point=<optimized out>, __the_thread__=__the_thread__ at entry=0xf7d0f308)
> at
> ./src/hotspot/src/share/vm/interpreter/cppInterpreter.cpp:66
> #6 0x0f2a5628 in CppInterpreter::main_loop (recurse=recurse at entry=0,
> __the_thread__=__the_thread__ at entry=0xf7d0f308) at
> ./src/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp:150
> #7 0x0f2a7138 in CppInterpreter::normal_entry (method=<optimized out>,
> UNUSED=<optimized out>, __the_thread__=0xf7d0f308) at
> ./src/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp:79
> #8 0x0f2a412c in ZeroEntry::invoke (__the_thread__=0xf7d0f308,
> method=method at entry=0xf41207a0, this=<optimized out>) at
> ./src/hotspot/src/cpu/zero/vm/entry_zero.hpp:59
> #9 CppInterpreter::invoke_method (method=method at entry=0xf41207a0,
> entry_point=<optimized out>, __the_thread__=__the_thread__ at entry=0xf7d0f308)
> at
> ./src/hotspot/src/share/vm/interpreter/cppInterpreter.cpp:66
> #10 0x0f2a5628 in CppInterpreter::main_loop (recurse=recurse at entry=0,
> __the_thread__=__the_thread__ at entry=0xf7d0f308) at
> ./src/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp:150
> #11 0x0f2a7138 in CppInterpreter::normal_entry (method=<optimized out>,
> UNUSED=<optimized out>, __the_thread__=0xf7d0f308) at
> ./src/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp:79
> #12 0x0f2a412c in ZeroEntry::invoke (__the_thread__=0xf7d0f308,
> method=method at entry=0xf4120598, this=<optimized out>) at
> ./src/hotspot/src/cpu/zero/vm/entry_zero.hpp:59
> #13 CppInterpreter::invoke_method (method=method at entry=0xf4120598,
> entry_point=<optimized out>, __the_thread__=__the_thread__ at entry=0xf7d0f308)
> at
> ./src/hotspot/src/share/vm/interpreter/cppInterpreter.cpp:66
> #14 0x0f2a5628 in CppInterpreter::main_loop (recurse=recurse at entry=0,
> __the_thread__=__the_thread__ at entry=0xf7d0f308) at
> ./src/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp:150
> #15 0x0f2a7138 in CppInterpreter::normal_entry (method=<optimized out>,
> UNUSED=<optimized out>, __the_thread__=0xf7d0f308) at
> ./src/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp:79
> #16 0x0f2a412c in ZeroEntry::invoke (__the_thread__=0xf7d0f308,
> method=method at entry=0xf4116f98, this=<optimized out>) at
> ./src/hotspot/src/cpu/zero/vm/entry_zero.hpp:59
> #17 CppInterpreter::invoke_method (method=method at entry=0xf4116f98,
> entry_point=<optimized out>, __the_thread__=__the_thread__ at entry=0xf7d0f308)
> at
> ./src/hotspot/src/share/vm/interpreter/cppInterpreter.cpp:66
> #18 0x0f2a5628 in CppInterpreter::main_loop (recurse=recurse at entry=0,
> __the_thread__=__the_thread__ at entry=0xf7d0f308) at
> ./src/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp:150
> #19 0x0f2a7138 in CppInterpreter::normal_entry (method=<optimized out>,
> UNUSED=<optimized out>, __the_thread__=0xf7d0f308) at
> ./src/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp:79
> #20 0x0f2a412c in ZeroEntry::invoke (__the_thread__=0xf7d0f308,
> method=method at entry=0xf4116d88, this=<optimized out>) at
> ./src/hotspot/src/cpu/zero/vm/entry_zero.hpp:59
> #21 CppInterpreter::invoke_method (method=method at entry=0xf4116d88,
> entry_point=<optimized out>, __the_thread__=__the_thread__ at entry=0xf7d0f308)
> at
> ./src/hotspot/src/share/vm/interpreter/cppInterpreter.cpp:66
> #22 0x0f2a5628 in CppInterpreter::main_loop (recurse=recurse at entry=0,
> __the_thread__=__the_thread__ at entry=0xf7d0f308) at
> ./src/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp:150
> #23 0x0f2a7138 in CppInterpreter::normal_entry (method=<optimized out>,
> UNUSED=<optimized out>, __the_thread__=0xf7d0f308) at
> ./src/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp:79
> #24 0x0f2a412c in ZeroEntry::invoke (__the_thread__=0xf7d0f308,
> method=method at entry=0xf4115070, this=<optimized out>) at
> ./src/hotspot/src/cpu/zero/vm/entry_zero.hpp:59
> #25 CppInterpreter::invoke_method (method=method at entry=0xf4115070,
> entry_point=<optimized out>, __the_thread__=__the_thread__ at entry=0xf7d0f308)
> at
> ./src/hotspot/src/share/vm/interpreter/cppInterpreter.cpp:66
> #26 0x0f2a5628 in CppInterpreter::main_loop (recurse=recurse at entry=0,
> __the_thread__=__the_thread__ at entry=0xf7d0f308) at
> ./src/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp:150
> #27 0x0f2a7138 in CppInterpreter::normal_entry (method=<optimized out>,
> UNUSED=<optimized out>, __the_thread__=0xf7d0f308) at
> ./src/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp:79
> #28 0x0f2a412c in ZeroEntry::invoke (__the_thread__=0xf7d0f308,
> method=method at entry=0xf57daaf0, this=<optimized out>) at
> ./src/hotspot/src/cpu/zero/vm/entry_zero.hpp:59
> #29 CppInterpreter::invoke_method (method=method at entry=0xf57daaf0,
> entry_point=<optimized out>, __the_thread__=__the_thread__ at entry=0xf7d0f308)
> at
> ./src/hotspot/src/share/vm/interpreter/cppInterpreter.cpp:66
> #30 0x0f2a5628 in CppInterpreter::main_loop (recurse=recurse at entry=0,
> __the_thread__=__the_thread__ at entry=0xf7d0f308) at
> ./src/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp:150
> #31 0x0f2a7138 in CppInterpreter::normal_entry (method=<optimized out>,
> UNUSED=<optimized out>, __the_thread__=0xf7d0f308) at
> ./src/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp:79
> #32 0x0f2a412c in ZeroEntry::invoke (__the_thread__=0xf7d0f308,
> method=method at entry=0xf41083e0, this=<optimized out>) at
> ./src/hotspot/src/cpu/zero/vm/entry_zero.hpp:59
> #33 CppInterpreter::invoke_method (method=method at entry=0xf41083e0,
> entry_point=<optimized out>, __the_thread__=__the_thread__ at entry=0xf7d0f308)
> at
> ./src/hotspot/src/share/vm/interpreter/cppInterpreter.cpp:66
> #34 0x0f2a5628 in CppInterpreter::main_loop (recurse=recurse at entry=0,
> __the_thread__=__the_thread__ at entry=0xf7d0f308) at
> ./src/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp:150
> #35 0x0f2a7138 in CppInterpreter::normal_entry (method=<optimized out>,
> UNUSED=<optimized out>, __the_thread__=0xf7d0f308) at
> ./src/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp:79
> #36 0x0f2a412c in ZeroEntry::invoke (__the_thread__=0xf7d0f308,
> method=method at entry=0xf41054e0, this=<optimized out>) at
> ./src/hotspot/src/cpu/zero/vm/entry_zero.hpp:59
> #37 CppInterpreter::invoke_method (method=method at entry=0xf41054e0,
> entry_point=<optimized out>, __the_thread__=__the_thread__ at entry=0xf7d0f308)
> at
> ./src/hotspot/src/share/vm/interpreter/cppInterpreter.cpp:66
> #38 0x0f2a5628 in CppInterpreter::main_loop (recurse=recurse at entry=0,
> __the_thread__=__the_thread__ at entry=0xf7d0f308) at
> ./src/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp:150
> #39 0x0f2a7138 in CppInterpreter::normal_entry (method=<optimized out>,
> UNUSED=<optimized out>, __the_thread__=0xf7d0f308) at
> ./src/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp:79
> #40 0x0f2a412c in ZeroEntry::invoke (__the_thread__=0xf7d0f308,
> method=method at entry=0xf4104fb0, this=<optimized out>) at
> ./src/hotspot/src/cpu/zero/vm/entry_zero.hpp:59
> #41 CppInterpreter::invoke_method (method=method at entry=0xf4104fb0,
> entry_point=<optimized out>, __the_thread__=__the_thread__ at entry=0xf7d0f308)
> at
> ./src/hotspot/src/share/vm/interpreter/cppInterpreter.cpp:66
> #42 0x0f2a5628 in CppInterpreter::main_loop (recurse=recurse at entry=0,
> __the_thread__=__the_thread__ at entry=0xf7d0f308) at
> ./src/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp:150
> #43 0x0f2a7138 in CppInterpreter::normal_entry (method=<optimized out>,
> UNUSED=<optimized out>, __the_thread__=0xf7d0f308) at
> ./src/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp:79
> #44 0x0f2a412c in ZeroEntry::invoke (__the_thread__=0xf7d0f308,
> method=method at entry=0xf5a15c88, this=<optimized out>) at
> ./src/hotspot/src/cpu/zero/vm/entry_zero.hpp:59
> #45 CppInterpreter::invoke_method (method=method at entry=0xf5a15c88,
> entry_point=<optimized out>, __the_thread__=__the_thread__ at entry=0xf7d0f308)
> at
> ./src/hotspot/src/share/vm/interpreter/cppInterpreter.cpp:66
> #46 0x0f2a5628 in CppInterpreter::main_loop (recurse=recurse at entry=0,
> __the_thread__=__the_thread__ at entry=0xf7d0f308) at
> ./src/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp:150
> #47 0x0f2a7138 in CppInterpreter::normal_entry (method=<optimized out>,
> UNUSED=<optimized out>, __the_thread__=0xf7d0f308) at
> ./src/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp:79
> #48 0x0f2a412c in ZeroEntry::invoke (__the_thread__=0xf7d0f308,
> method=method at entry=0xf5a15078, this=<optimized out>) at
> ./src/hotspot/src/cpu/zero/vm/entry_zero.hpp:59
> #49 CppInterpreter::invoke_method (method=method at entry=0xf5a15078,
> entry_point=<optimized out>, __the_thread__=__the_thread__ at entry=0xf7d0f308)
> at
> ./src/hotspot/src/share/vm/interpreter/cppInterpreter.cpp:66
> #50 0x0f2a5628 in CppInterpreter::main_loop (recurse=recurse at entry=0,
> __the_thread__=__the_thread__ at entry=0xf7d0f308) at
> ./src/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp:150
> #51 0x0f2a7138 in CppInterpreter::normal_entry (method=<optimized out>,
> UNUSED=<optimized out>, __the_thread__=0xf7d0f308) at
> ./src/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp:79
> #52 0x0f2a412c in ZeroEntry::invoke (__the_thread__=0xf7d0f308,
> method=method at entry=0xf5a0a870, this=this at entry=0xf5d00140) at
> ./src/hotspot/src/cpu/zero/vm/entry_zero.hpp:59
> #53 CppInterpreter::invoke_method (method=method at entry=0xf5a0a870,
> entry_point=entry_point at entry=0xf5d00140 "\017*p\300\017*p\300\017*\
> 201P\017*\202p\017",
> __the_thread__=__the_thread__ at entry=0xf7d0f308) at
> ./src/hotspot/src/share/vm/interpreter/cppInterpreter.cpp:66
> #54 0x0f9c5630 in StubGenerator::call_stub (call_wrapper=call_wrapper at entry=0xf7f9ea48,
> result=result at entry=0xf7f9ec60, result_type=result_type at entry=T_INT,
> method=method at entry=0xf5a0a870, entry_point=entry_point at entry=0xf5d00140
> "\017*p\300\017*p\300\017*\201P\017*\202p\017", parameters=<optimized
> out>,
> parameter_words=1,
> __the_thread__=__the_thread__ at entry=0xf7d0f308) at
> ./src/hotspot/src/cpu/zero/vm/stubGenerator_zero.cpp:98
> #55 0x0f53cccc in JavaCalls::call_helper (result=result at entry=0xf7f9ec58,
> method=..., args=args at entry=0xf7f9eb28,
> __the_thread__=__the_thread__ at entry=0xf7d0f308) at
> ./src/hotspot/src/share/vm/runtime/javaCalls.cpp:419
> #56 0x0f868838 in os::os_exception_wrapper (f=f at entry=0xf53c500
> <JavaCalls::call_helper(JavaValue*, methodHandle const&,
> JavaCallArguments*, Thread*)>,
> value=value at entry=0xf7f9ec58, method=..., args=args at entry=0xf7f9eb28,
> thread=thread at entry=0xf7d0f308) at ./src/hotspot/src/os/linux/vm/
> os_linux.cpp:5130
> #57 0x0f53b91c in JavaCalls::call (result=result at entry=0xf7f9ec58,
> method=..., args=args at entry=0xf7f9eb28, __the_thread__=__the_thread__ at entry=0xf7d0f308)
> at
> ./src/hotspot/src/share/vm/runtime/javaCalls.cpp:306
> #58 0x0f56b8e8 in jni_invoke_static (env=env at entry=0xf7d0f460,
> result=result at entry=0xf7f9ec58, method_id=method_id at entry=0xf469d808,
> args=args at entry=0xf7f9ec18,
> __the_thread__=__the_thread__ at entry=0xf7d0f308, call_type=JNI_STATIC,
> receiver=0x0) at ./src/hotspot/src/share/vm/prims/jni.cpp:1119
> #59 0x0f58d228 in jni_CallStaticVoidMethod (env=0xf7d0f460, cls=<optimized
> out>, methodID=0xf469d808) at ./src/hotspot/src/share/vm/
> prims/jni.cpp:1989
> #60 0x0ff24f94 in JavaMain (_args=<optimized out>) at
> ./src/jdk/src/java.base/share/native/libjli/java.c:546
> #61 0x0ff28aa0 in call_continuation (_args=<optimized out>) at
> ./src/jdk/src/java.base/unix/native/libjli/java_md_solinux.c:895
> #62 0x0ff67500 in start_thread () from /lib/powerpc-linux-gnu/
> libpthread.so.0
> #63 0x0fe239b0 in clone () from /lib/powerpc-linux-gnu/libc.so.6
> (gdb) p in_buf
> $1 = (jbyte *) 0xd43cb264 "\312\376\272\276"
> (gdb) p this_off
> $2 = 0
> (gdb) p strm
> $3 = (z_stream *) 0x10006
> (gdb) p *strm
> Cannot access memory at address 0x10006
> (gdb)
>
> --
> .''`. John Paul Adrian Glaubitz
> : :' : Debian Developer - glaubitz at debian.org
> `. `' Freie Universitaet Berlin - glaubitz at physik.fu-berlin.de
> `- GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913
>
More information about the hotspot-dev
mailing list