[aarch64-port-dev ] assertion failure bcp doesn't belong to this method
D.Sturm
D.Sturm42 at gmail.com
Sun Feb 16 09:02:50 PST 2014
Hi,
this is a bit out of scope here, but I hope my problem may have turned up
before and someone has some good debugging tips or ideas what could be the
problem. I am working on the Aarch64 port for graal (
http://openjdk.java.net/projects/graal/) which means I had to merge the
Aarch64 HotSpot port with Graal's Hotspot code.
The simulator and template interpreter work fine for the longest time, but
then trigger the following assertion: assert(is_native() && bcp ==
code_base() || contains(bcp) || is_error_reported()) failed: bcp doesn't
belong to this method: bcp: 0x00007ffff6e21510, method:
java.io.DataInputStream.readUTF(Ljava/io/DataInput;)Ljava/lang/String;
This happens before the graal compiler is completely setup so it must be
some problem from the merge in the Hotspot code - I just have no idea how
to figure out where it goes wrong.
The code is called from the simulator so the stacktrace is not too useful:
#0 os::abort (dump_core=true) at
/home/voo/armv8-graal/src/os/linux/vm/os_linux.cpp:1569
#1 0x00007ffff76fbde5 in VMError::report_and_die (this=0x7ffff6e211d0)
at /home/voo/armv8-graal/src/share/vm/utilities/vmError.cpp:1078
#2 0x00007ffff728d882 in report_vm_error (
file=0x7ffff78b4948
"/home/voo/armv8-graal/src/share/vm/oops/method.cpp", line=244,
error_msg=0x7ffff78b4ab8 "assert(is_native() && bcp == code_base() ||
contains(bcp) || is_error_reported()) failed",
detail_msg=0x7ffff6e212a8 "bcp doesn't belong to this method: bcp:
0x00007ffff6e21510, method:
java.io.DataInputStream.readUTF(Ljava/io/DataInput;)Ljava/lang/String;")
at /home/voo/armv8-graal/src/share/vm/utilities/debug.cpp:223
#3 0x00007ffff756f40b in Method::bci_from (this=0x7ffff4c3fd08,
bcp=0x7ffff6e21510 "")
at /home/voo/armv8-graal/src/share/vm/oops/method.cpp:243
#4 0x00007ffff73ec5b9 in InterpreterRuntime::verify_mdp
(method=0x7ffff4c3fd08, bcp=0x7ffff6e21510 "",
mdp=0x7ffff4c40658 "\005") at
/home/voo/armv8-graal/src/share/vm/interpreter/interpreterRuntime.cpp:905
#5 0x00007ffff6e62c27 in gload0L () at linkage.s:265
#6 0x00007fffec0827f8 in ?? ()
...
I fixed up the stacktrace once in gload0L (basically just a set
$rbp=<previous value>) and that gives me:
#1 0x00007ffff6e45f85 in AArch64Simulator::run (this=0x7ffff001ac60) at
simulator.cpp:384
#2 0x00007ffff7144274 in setup_arm_sim (sp=0x7ffff6e21a10, calltype=8)
at /home/voo/armv8-graal/src/cpu/aarch64/vm/aarch64_call.cpp:173
#3 0x00007ffff7144464 in aarch64_prolog ()
from
/home/voo/armv8-graal/jdk1.8.0-internal-debug/debug/jre/lib/aarch64/graal/libjvm.so
#4 0x00007ffff73f6590 in JavaCalls::call_helper (result=0x7ffff6e22370,
m=0x7ffff6e22450,
args=0x7ffff6e21db0, __the_thread__=0x7ffff000ac58)
at /home/voo/armv8-graal/src/share/vm/runtime/javaCalls.cpp:433
#5 0x00007ffff75d1f9c in os::os_exception_wrapper (
f=0x7ffff73f5eb4 <JavaCalls::call_helper(JavaValue*, methodHandle*,
JavaCallArguments*, Thread*)>,
value=0x7ffff6e22370, method=0x7ffff6e22450, args=0x7ffff6e21db0,
thread=0x7ffff000ac58)
at /home/voo/armv8-graal/src/os/linux/vm/os_linux.cpp:5119
#6 0x00007ffff73f5eb2 in JavaCalls::call (result=0x7ffff6e22370,
method=..., args=0x7ffff6e21db0,
__the_thread__=0x7ffff000ac58) at
/home/voo/armv8-graal/src/share/vm/runtime/javaCalls.cpp:324
#7 0x00007ffff7466209 in JVM_DoPrivileged (env=0x7ffff000ae78,
cls=0x7ffff6e22658, action=0x7ffff6e22668,
context=0x0, wrapException=0 '\000') at
/home/voo/armv8-graal/src/share/vm/prims/jvm.cpp:1243
#8 0x00007ffff67ed7d3 in
Java_java_security_AccessController_doPrivileged__Ljava_security_PrivilegedAction_2
(env=0x7ffff000ae78, cls=0x7ffff6e22658, action=0x7ffff6e22668)
at
/home/voo/jdk8/jdk/src/share/native/java/security/AccessController.c:45
#9 0x00007ffff6e62c27 in gload0L () at linkage.s:265
...
regards,
Daniel
More information about the aarch64-port-dev
mailing list